记录编号 593727 评测结果 AAAAAAAAAA
题目名称 平凡的测试数据 最终得分 100
用户昵称 Gravatar郑霁桓 是否通过 通过
代码语言 C++ 运行时间 0.675 s
提交时间 2024-09-10 19:59:55 内存使用 5.39 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,x,y,fa[300005],s[300005],p,a[300005];
long long f(long long x){
    if(fa[x]!=x){
        long long p;
        p=f(fa[x]);
        if(fa[fa[x]]!=fa[x]){
            s[x]^=s[fa[x]];
        }
        fa[x]=p;
    }
    return fa[x];
}
int main(){
    freopen("td.in","r",stdin);
    freopen("td.out","w",stdout);
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
        s[i]=a[i];
        fa[i]=i;
    }
    while(m--){
        scanf("%lld%lld",&p,&x);
        if(p==1){
            scanf("%lld",&y);
            fa[x]=y;
        }else{
            f(x);
            if(fa[x]==x){
                printf("%lld\n",s[x]);
            }else{
                printf("%lld\n",s[x]^s[fa[x]]);
            }
        }
    }
    return 0;
}