博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ2115:[WC2011]Xor——题解
阅读量:6542 次
发布时间:2019-06-24

本文共 1547 字,大约阅读时间需要 5 分钟。

这道题当年还是新题,现在都成线性基套路题了。

参考:

一个1~n路径值可以拆成一条1~n的路径值^几个环(因为去到环和回来的路的值被异或回去了)。

于是就变成了处理出所有环的异或值和所有1~n的无环路的异或值,然后把环的异或值扔到线性基里面,剩下的就是套路了。

#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=50010;const int M=200010;const int BASE=60;inline ll read(){ ll X=0,w=0;char ch=0; while(!isdigit(ch)){w|=ch=='-';ch=getchar();} while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X;}struct node{ int to,nxt; ll w;}e[M];int cnt,n,m,head[N],tot,num;ll a[M],b[BASE+4],s[M],t[M];bool vis[N];inline void add(int u,int v,ll w){ e[++cnt].to=v;e[cnt].w=w;e[cnt].nxt=head[u];head[u]=cnt;}void dfs(int u,ll sum){ vis[u]=1;t[u]=sum; for(int i=head[u];i;i=e[i].nxt){ int v=e[i].to;ll w=e[i].w; ll ans=sum^w^t[v]; if(vis[v]){ if(ans)a[++tot]=ans; continue; } dfs(v,sum^w); } if(u==n)s[++num]=sum; return;}int main(){ n=read(),m=read(); for(int i=1;i<=m;i++){ int u=read(),v=read();ll w=read(); add(u,v,w);add(v,u,w); } dfs(1,0); for(int i=1;i<=tot;i++){ for(int j=BASE;j>=0;j--){ if(a[i]>>j&1){ if(b[j])a[i]^=b[j]; else{ b[j]=a[i]; break; } } } } ll ans=0; for(int i=1;i<=num;i++){ ll tmp=s[i]; for(int j=BASE;j>=0;j--){ tmp=max(tmp,tmp^b[j]); } ans=max(ans,tmp); } printf("%lld\n",ans); return 0;}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/8817936.html

你可能感兴趣的文章
微信,想要说爱你,却没有那么容易!
查看>>
有关sqlite与sql
查看>>
MapXtreme 2005 学习心得 概述(一)
查看>>
php进一法取整、四舍五入取整、忽略小数等的取整数方法大全
查看>>
Hibernate的拦截器和监听器
查看>>
游戏中学习Bash技能
查看>>
ubuntu 12.04系统托盘不显示ibus输入法图标的解决方法
查看>>
WSDP
查看>>
Memory Management
查看>>
The Packaging Process in Yocto/OE
查看>>
JQUERY 对 表格中的数据重排序
查看>>
程序员常用借口指南
查看>>
关于PXE网络安装linux系统中碰到的个别问题
查看>>
awk 常用方法
查看>>
Android网络框架实现之【Retrofit+RxJava】
查看>>
Android文件的加密与解密
查看>>
SOAP webserivce 和 RESTful webservice 对比及区别
查看>>
【原】记录一句话
查看>>
Android标题栏,状态栏
查看>>
Windows下安装Memcached for PHP
查看>>