比赛 2024暑假C班集训A 评测结果 AAAAAAAAAA
题目名称 轮子的旋转 最终得分 100
用户昵称 flyfree 运行时间 0.035 s
代码语言 C++ 内存使用 3.41 MiB
提交时间 2024-07-10 08:39:03
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100010
int s[MAXN],hd[MAXN],ed[MAXN],nxt[MAXN],val[MAXN];
int idx,n;
void build(int x,int y,int z){
    nxt[++idx]=hd[x];
    hd[x]=idx;
    ed[idx]=y;
    val[idx]=z;
}
void dfs(int now,int p){
    for(int i=hd[now];i;i=nxt[i]){
        int y=ed[i];
        if(y!=p){
            s[y]=s[now]^val[i];
            dfs(y,now);
        }
    }
}
int main(){
    freopen("rotation.in","r",stdin);
    freopen("rotation.out","w",stdout);
    cin>>n;
    for(int i=1;i<n;i++){
        int x,y,z;
        cin>>x>>y>>z;
        build(x,y,z);
        build(y,x,z);
    }
    dfs(1,0);
//    for(int i=1;i<n;i++)cout<<s[i];
    cout<<s[n];
    return 0;
}