比赛 9.6 评测结果 AAATTTTTTA
题目名称 平凡的测试数据 最终得分 40
用户昵称 喵喵喵 运行时间 11.999 s
代码语言 C++ 内存使用 4.00 MiB
提交时间 2024-09-06 20:52:19
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int w[300005];
int f[300005];
int n,m;
void init()
{
	for(int i = 1;i <= n;i++)
		f[i] = i;
	return;
}
int get(int x)
{
	int ans = w[x];
	while(f[x] != x) x = f[x],ans ^= w[x];
	return ans;
}
void merge(int a,int b)
{
	f[a] = b;
}
int main()
{
	freopen("td.in","r",stdin);
	freopen("td.out","w",stdout);
	scanf("%d%d",&n,&m);
	init();
	for(int i = 1;i <= n;i++)
	{
		scanf("%d",&w[i]);
	}
	for(int i = 0;i < m;i++)
	{
		int op;
		scanf("%d",&op);
		if(op == 1)
		{
			int a,b;
			scanf("%d%d",&a,&b);
			merge(a,b);
		}
		else
		{
			int a;
			scanf("%d",&a);
			printf("%d\n",get(a));
		}
	}
	return 0;
}