比赛 20211014 评测结果 AAAAAAAAAA
题目名称 平凡的测试数据 最终得分 100
用户昵称 遥时_彼方 运行时间 0.511 s
代码语言 C++ 内存使用 6.19 MiB
提交时间 2021-10-14 20:48:42
显示代码纯文本
#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;
}
//6 11
//2 3 4 5 6 7
//1 4 3
//1 5 4
//1 6 5
//2 6
//2 4
//2 5
//2 3
//1 3 2
//1 2 1
//2 2
//2 3