比赛 |
2025.5.4 |
评测结果 |
TTTTTTTTTT |
题目名称 |
最大异或和路径 |
最终得分 |
0 |
用户昵称 |
李奇文 |
运行时间 |
18.290 s |
代码语言 |
C++ |
内存使用 |
4.04 MiB |
提交时间 |
2025-05-04 11:51:29 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=5e5;
int ans,n,m,cnt,head[N],vis[N];
struct node{
int to,w,nxt;
}e[N];
void ask(int t,int k){
if(t==n){
ans=max(ans,k);
return;
}
for(int i=head[t];i;i=e[i].nxt){
int v=e[i].to,w=e[i].w;
if(!vis[v]){
vis[v]=1;
ask(v,k^w);
vis[v]=0;
}
}
return;
}
void add(int u,int v,int w){
e[++cnt].nxt=head[u];
head[u]=cnt;
e[cnt].to=v;
e[cnt].w=w;
return;
}
int main(){
freopen("xorr.in","r",stdin);
freopen("xorr.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++){
int s,t,d;
cin>>s>>t>>d;
add(s,t,d);
add(t,s,d);
}
ask(1,0);
cout<<ans<<endl;
return 0;
}