比赛 9.6 评测结果 AAAAAAAAAA
题目名称 平凡的测试数据 最终得分 100
用户昵称 flyfree 运行时间 1.735 s
代码语言 C++ 内存使用 5.10 MiB
提交时间 2024-09-06 20:08:52
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define MAXN 500010
#define ll long long
inline ll read(){
    ll x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-')f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        x=x*10+c-'0';
        c=getchar(); 
    }
    return x*f;
}
ll s[MAXN],f[MAXN],d[MAXN];
ll n,m;
ll find(ll x){
    if(f[x]==x)return x;
    else{
        ll re=find(f[x]);
        d[x]^=d[f[x]];
        return f[x]=re;
    }
}
int main(){
    freopen("td.in","r",stdin);
    freopen("td.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        s[i]=read();
        f[i]=i;
    }
    for(int i=1;i<=m;i++){
        ll a,b,c;
        a=read(),b=read();
        if(a==1){
            c=read();
            f[b]=c;
            d[b]=s[c];
        }else{
            find(b);
            cout<<(d[b]^s[b])<<endl;
        }
    }
}