比赛场次 627
比赛名称 9.6
比赛状态 已结束比赛成绩
开始时间 2024-09-06 18:30:00
结束时间 2024-09-06 22:00:00
开放分组 全部用户
注释介绍 3<1<4<2
题目名称 平凡的测试数据
输入输出 td.in/out
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar┭┮﹏┭┮ AAAAAAAAAA 0.532 s 4.48 MiB 100
Gravatardjyqjy AAAAAAAAAA 0.630 s 4.77 MiB 100
Gravatar彭欣越 AAAAAAAAAA 0.638 s 5.25 MiB 100
Gravatar123 AAAAAAAAAA 0.655 s 4.48 MiB 100
Gravatar健康铀 AAAAAAAAAA 0.657 s 4.44 MiB 100
Gravatarwdsjl AAAAAAAAAA 0.671 s 4.42 MiB 100
Gravatar小金 AAAAAAAAAA 0.678 s 4.53 MiB 100
Gravatar徐诗畅 AAAAAAAAAA 0.690 s 4.45 MiB 100
GravatardarkMoon AAAAAAAAAA 0.705 s 5.38 MiB 100
Gravatarflyfree AAAAAAAAAA 1.735 s 5.10 MiB 100
Gravatardream AAATTTTTTA 11.785 s 3.99 MiB 40
Gravatar喵喵喵 AAATTTTTTA 11.999 s 4.00 MiB 40
Gravatar郑霁桓 AAATTTTTTA 12.003 s 5.22 MiB 40
Gravatar何沛儒 AAATTTTTTA 12.014 s 3.93 MiB 40
Gravatar李奇文 AAATTTTTTA 12.022 s 4.17 MiB 40
Gravatar蜀山鸭梨大 EEEEEEEEEE 2.184 s 3.88 MiB 0

平凡的测试数据

★★☆   输入文件:td.in   输出文件:td.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

树链剖分可以干什么?

“可以支持在树中快速修改一个点信息,快速询问一条链信息”

LCT可以干什么?

“可以支持树链剖分支持的特性,并且支持快速链接两个棵树,或者断开某条边”

那我现在要出一道关于树的题目,一开始有n个点,每个点自成一颗树,所以现在有n棵树。每个点有一个权值。有以下这些操作类型:

连接操作:1 a b,连接a和b,使a成为b的儿子结点,a一定是某个树的根节点。这样就把两棵树连接到一起,此时a以及所有后代的根节点均为b所在树的根节点。

询问操作:2 a,询问a到树根路径上的所有点(包括自己和根)的权值异或和。

恩...但是由于我懒,所以还没有造数据,请你帮我写个标程让我用来造数据吧。

【输入格式】

第一行两个整数n和m,表示有n个点和m个操作。

接下有一行n个整数,第i个整数表示第i个点的权值。

接下来m行,每行包含一个操作1 a b或者2 a,操作具体含义见题目描述。

【输出格式】

对于每个询问操作,输出一行,表示从a到根路径上所有点的权值异或和。

【样例输入】

5 8
1 2 3 4 5
2 2
1 2 1
2 2
1 4 3
1 3 2
2 3
1 5 1
2 5

【样例输出】

2
3
0
4

【样例解释】

样例中每个节点权值与标号相同;

第一个询问中2的根节点是自己,所以第一个询问2节点的答案为2;

第二个询问中2的根节点是1,路径为2-1,所以答案为2 xor 1 = 3;

第三个询问中3到根节点的路径为3-2-1,所以答案为3 xor 2 xor 1 = 0;

第四个询问中5到根节点的路径为5-1,所以答案为5 xor 1 = 4;

【数据范围与约定】

对于40%的数据1 <= n,m <= 1000;

对于90%的数据1 <= n <= 100000, 1 <= m <= 200000;

对于100%的数据1 <= n <= 300000, 1 <= m <= 500000;

所有节点的权值均为正整数且在int范围内。

大样例