思路:

先搞出来所有的环的抑或值 随便求一条1~n的路径异或和

gauss消元找异或和最大 贪心取max即可

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 200050
#define int long long
int n,m,xx,yy,zz,w[N],v[N],next[N],first[N],tot,vis[N],d[N],stk[N],tp;
void Add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
void add(int x,int y,int z){Add(xx,yy,zz),Add(yy,xx,zz);}
void dfs(int x){
vis[x]=1;
for(int i=first[x];~i;i=next[i]){
if(!vis[v[i]])d[v[i]]=d[x]^w[i],dfs(v[i]);
else if(d[v[i]]^d[x]^w[i])stk[++tp]=d[v[i]]^d[x]^w[i];
}
}
void gauss(){
for(int i=1ll<<62,flag=1,j;i;i>>=1){
for(j=flag;j<=tp;j++)if(stk[j]&i)break;
if(j==tp+1)continue;
swap(stk[flag],stk[j]);
for(int k=1;k<=tp;k++){
if(k==flag)continue;
if(stk[k]&i)stk[k]^=stk[flag];
}
flag++;
}
}
signed main(){
memset(first,-1,sizeof(first));
scanf("%lld%lld",&n,&m);
for(int i=1;i<=m;i++){
scanf("%lld%lld%lld",&xx,&yy,&zz);
add(xx,yy,zz);
}
dfs(1),gauss();
for(int i=1;i<=tp;i++)d[n]=max(d[n],d[n]^stk[i]);
printf("%lld\n",d[n]);
}

最新文章

  1. Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析
  2. C#获得类的方法和方法参数
  3. linux 创建连接命令 ln -s 软链接
  4. 再谈自主开发与企业IT管理
  5. 也谈谈 Redis 和 Memcached 的区别
  6. 通俗易懂的讲解iphone视图控制器的生命周期
  7. shell之“&gt;/dev/null 2&gt;&amp;1” 详解(转)
  8. dedecms模版制作活动的折叠菜单
  9. 由于jsp include 很多文件后导致java类大小超过65535 bytes 的解决方法(转载)
  10. C# 循环语句
  11. [转]php 在各种web服务器的运行模式
  12. Luogu P1690 贪婪的Copy
  13. 网站开发进阶(十一)如何将一个jsp页面嵌套在另一个页面中
  14. 如何提高缓存命中率(Redis)
  15. 集合源码分析[1]-Collection 源码分析
  16. Oracle11g版本中未归档隐藏参数
  17. 42-字符串到json 的错误 com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
  18. Mysql 经典案例总结(学习之前需要有Mysql基础)01
  19. [c/c++]指针(1)
  20. 通过Chrome的inspect对手机webview进行调试

热门文章

  1. java基础之get和post的差别
  2. google 搜索不跳中间页
  3. caffe环境配置
  4. angular4(1)angular脚手架
  5. [JZOJ NOIP2018模拟10.20 B组]
  6. 7.boostUDP通信
  7. SpringBoot(三) SpringBoot中的日志配置
  8. Windows7下Thingworx 7安装
  9. 数字游戏(string的sort的应用)
  10. 关于Scrapy爬虫项目运行和调试的小技巧(下篇)