记录编号 |
449174 |
评测结果 |
AAAAAAAAAA |
题目名称 |
平凡的测试数据 |
最终得分 |
100 |
用户昵称 |
123 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.632 s |
提交时间 |
2017-09-13 20:43:46 |
内存使用 |
7.94 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int f[1000000]={0},hh[1000000]={0},n,m;
int get(int u)
{
if(f[u]==u||f[u]==f[f[u]])
return f[u];
else
{
int i=f[u];
f[u]=get(f[u]);
hh[u]=hh[u]^hh[i];
return f[u];
}
}
int main(){
freopen ("td.in","r",stdin);
freopen ("td.out","w",stdout);
int a,c,i,j;
scanf("%d%d",&n,&m);
for(a=1;a<=n;a++)
{
scanf("%d",&hh[a]);
f[a]=a;
}
for(a=1;a<=m;a++)
{
scanf("%d",&c);
if(c==1)
{
scanf("%d%d",&i,&j);
f[i]=j;
get(i);
}
else
{
scanf("%d",&i);
get(i);
if(f[i]==i)
printf("%d\n",hh[i]);
else
printf("%d\n",hh[i]^hh[f[i]]);
}
}
return 0;
}