比赛 9.6 评测结果 AAATTTTTTA
题目名称 平凡的测试数据 最终得分 40
用户昵称 何沛儒 运行时间 12.014 s
代码语言 C++ 内存使用 3.93 MiB
提交时间 2024-09-06 21:18:12
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,s[300005],fa[300005];
int find(int x){
	if(fa[x] == x) return x;
	return fa[x] = find(fa[x]);
} 
int main(){
	freopen("td.in","r",stdin);
	freopen("td.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i = 1; i <= n; i++){
		fa[i] = i;
		int x;
		cin >> x;
		s[i] = x;
	}
	while(m--){
		int opt;
		scanf("%d",&opt);
		if(opt == 1){
			scanf("%d%d",&a,&b);
			fa[a] = b;
		}else{
			cin >> a;
			int ans = s[a];
			if(fa[a] == a){
				cout << ans << endl;
				continue;
			}else{
				a = fa[a];
				while(fa[a] != a){
					ans^=s[a];
					a = fa[a];
					
				}
			
				ans^=s[a];
			}
			cout << ans << endl;
		}
	}
	return 0;
}