记录编号 565041 评测结果 AAAAAAAAAA
题目名称 平凡的测试数据 最终得分 100
用户昵称 Gravatar遥时_彼方 是否通过 通过
代码语言 C++ 运行时间 0.492 s
提交时间 2021-10-15 20:58:50 内存使用 6.19 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
using namespace std;
int nc,mc;
struct tre
{
    int f;
    int p;
}a[600001];
tre dg(int x)
{
    if(!a[a[x].f].f) return a[x];
    tre re;
    re=dg(a[x].f);
    a[x].f=re.f;
    a[x].p^=re.p;
    re.p=a[x].p;
    return re;
}
int main()
{
    freopen("td.in","r",stdin);
	freopen("td.out","w",stdout);
	cin>>nc>>mc;
	for(int i=1;i<=nc;i++)
	{
	    scanf("%d",&a[i].p);
    }
    int s1,s2,s3;
    for(int i=1;i<=mc;i++)
    {
        scanf("%d%d",&s1,&s2);
        if(s1==1)
        {
            scanf("%d",&s3);
            a[s2].f=s3;
        }
        else
        {
            dg(s2);
            printf("%d\n",a[s2].p^a[a[s2].f].p);
        }
    }
    return 0;
}