传送门biu~
建一个树然后从1跑dfs跑到n就行了。
#include<bits/stdc++.h>
#define N 1005
using namespace std;
int n;
int head[N],nex[N],to[N],v[N],tp;
inline void add(int x,int y,int val){
nex[++tp]=head[x];
head[x]=tp;
to[tp]=y;
v[tp]=val;
}
void dfs(int x,int p){
if(x==n){
printf("%d",p);
exit(0);
}
for(int i=head[x];i;i=nex[i]) dfs(to[i],p^v[i]);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n-1;++i){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
}
dfs(1,0);
}