题目传送门

题意:给出一幅无向图,求1到n的所有路径中最大异或和,一条边可以被重复经过。

思路:

  参考了大佬的博客

#pragma GCC optimize (2)
#pragma G++ optimize (2)
#pragma comment(linker, "/STACK:102400000,102400000")
#include<bits/stdc++.h>
#include<cstdio>
#include<vector>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,b,a) for(int i=b;i>=a;i--)
#define clr(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define pii pair<int,int >
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
ll rd()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int maxn=;
int n,m,vis[maxn];
struct edge{
int to;
ll w;
};
vector<edge >ve[maxn];
ll link,del[maxn];
ll p[];
void insert(ll res){
dep(i,,){
if((res>>i)&){
if(!p[i]){
p[i]=res;
break;
}
res^=p[i];
}
}
}
ll query(ll x){
dep(i,,){
if((x^p[i])>x){
x^=p[i];
}
}
return x;
}
void dfs(int u,ll res){
del[u]=res;
vis[u]=;
if(u==n){
link=res;
}
for(auto &st:ve[u]){
if(vis[st.to]){
insert(res^st.w^del[st.to]);
}else{
dfs(st.to,res^st.w);
}
}
}
int main(){
while(cin>>n>>m){
rep(i,,n){
ve[i].clear();
vis[i]=;
}
rep(i,,m){
int u=rd(),v=rd();
ll w=rd();
ve[u].pb({v,w}),ve[v].pb({u,w});
}
link=-;
dfs(,);
printf("%lld\n",query(link));
}
}

最新文章

  1. asp.net程序员初涉node.js
  2. hdu 5101 n集合选2个不同集合数使和大于k
  3. JAVA IO流的简单总结+收集日志异常信息
  4. Android ListView高度自适应和ScrollView冲突解决
  5. webdriver(python)学习笔记四——定位一组元素
  6. Android UI开发第三十一篇——Android的Holo Theme
  7. Mysql-udf-http 插件的安装与使用
  8. 设置MAVEN_OPTS环境变量
  9. g++编C++11/C++0x遇到的问题
  10. JVM调优实战
  11. 201521123085 《Java程序设计》第11周学习总结
  12. 在谷歌安装扩展程序Axure RP Extension for Chrome后,经常无故损坏,无法使用
  13. sql leetcode -Duplicate Emails
  14. IP路由配置之---------debugging调试
  15. ServiceDesk Plus解析内容,简化工单管理
  16. vue 子组件和父组件
  17. 深入学习RabbitMQ(四):channel的confirm模式
  18. eBay推Winit海外仓 鼓励卖家拓展北美市场
  19. 通过 thread dump 分析找到高CPU耗用与内存溢出的Java代码
  20. 【bzoj4872】[Shoi2017]分手是祝愿 数论+期望dp

热门文章

  1. 记录Angular2.0学习遇到的问题
  2. 【记录】ELK之logstash同步mysql数据到Elasticsearch ,配置文件详解
  3. for循环(C语言型)流程
  4. Docker容器网络前提提要
  5. 如何在YouTube上下载视频
  6. numpy 数组中添加新元素
  7. ivew 修改排序号的逻辑
  8. Spring Boot Service注入为null mapper注入为null @Component注解下@Value获取不到值 WebsocketServer类里无法注入service
  9. &amp;与&amp;&amp;、|与||的区别
  10. Vue学习笔记【32】——Vue路由(watch、computed和methods之间的对比)