记录编号 449174 评测结果 AAAAAAAAAA
题目名称 平凡的测试数据 最终得分 100
用户昵称 Gravatar123 是否通过 通过
代码语言 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;
}