luogu#P6053. [RC-02] XOR

[RC-02] XOR

题目背景

FangZeLi 喜欢异或,所以就有了这道题(然而这并不是他出这种题的理由)。

题目描述

注意,本题中一切 \sum 均表示求异或和!

一棵 nn 个节点,n1n-1 条边的有根树,初始时以 11 节点为根。

这棵树上的每个节点 ii 都有其点权 ViV_{i}

令函数 $\operatorname{Xor}(x)=\sum_{y\in \operatorname{Subtree}(x)}{V_{y}}$,其中 Subtree(x)\operatorname{Subtree}(x) 表示 xx 的子树。

现需支持以下五种操作:

  1. 1 x,表示将 xx 换为根,且查询 i=1nXor(i)\sum_{i=1}^{n}{\operatorname{Xor}(i)}
  2. 2 x y,表示令 Vx=yV_{x}=y
  3. 3 x y ,表示查询 LCA(x,y)\operatorname{LCA}(x,y)
  4. 4 x y,表示查询 xxyy 路径上的点的点权异或和。
  5. 5 x,表示查询 Xor(x)\operatorname{Xor}(x)

输入格式

第一行三个整数,n,m,qn,m,q,分别表示节点数,11 操作个数,其余操作个数。

接下来一行 nn 个整数,表示 V1VnV_{1}\dots V_{n}

接下来 n1n-1 行,每行两个整数 x,yx,y,表示 xxyy 间有一条边。

接下来 m+qm+q 行,每行两到三个整数,第一个数为操作序号,接下来为相应的操作。

输出格式

若干行,表示 1,3,4,51,3,4,5 操作的结果。

5 4 4
0 0 2 2 1
1 2
1 3
2 4
2 5
1 1
1 1
1 1
2 3 0
4 3 3
5 1
1 2
3 1 2

3
3
3
0
3
0
2

10 8 8
5 6 2 1 0 4 0 0 0 3
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
3 10 9
2 1 6
1 5
1 4
1 7
1 7
5 1
1 1
3 1 5
1 7
1 9
2 5 0
4 9 6
1 10
4 10 7
5 1

2
3
3
3
3
2
3
1
3
7
7
7
1
0

提示

对于所有数据,保证 100n,m,q106100\le n,m,q\le 10^60Vi23110\le V_i\le 2^{31}-1。详细数据范围如下表。

测试点编号 时间限制/秒 nn mm qq
11 11 100 100 100 100 4×105 4 \times 10 ^ 5
2,32,3 10610^ { 6 }
4,54,5 104 10 ^ 4 100100
6,7,86,7,8 1 1 10610 ^ 6
99 1.8 1.8 106 10 ^ 6 100100 106 10^6
1010 2.3 2.3 106 10^6 106 10 ^ 6