P6053 [RC-02] XOR
题目背景
FangZeLi 喜欢异或,所以就有了这道题(然而这并不是他出这种题的理由)。
题目描述
**注意,本题中一切 $\sum$ 均表示求异或和!**
一棵 $n$ 个节点,$n-1$ 条边的有根树,初始时以 $1$ 节点为根。
这棵树上的每个节点 $i$ 都有其点权 $V_{i}$。
令函数 $\operatorname{Xor}(x)=\sum_{y\in \operatorname{Subtree}(x)}{V_{y}}$,其中 $\operatorname{Subtree}(x)$ 表示 $x$ 的子树。
现需支持以下五种操作:
1. `1 x`,表示将 $x$ 换为根,且查询 $\sum_{i=1}^{n}{\operatorname{Xor}(i)}$。
2. `2 x y`,表示令 $V_{x}=y$。
3. `3 x y` ,表示查询 $\operatorname{LCA}(x,y)$。
4. `4 x y`,表示查询 $x$ 到 $y$ 路径上的点的点权异或和。
5. `5 x`,表示查询 $\operatorname{Xor}(x)$。
输入格式
第一行三个整数,$n,m,q$,分别表示节点数,$1$ 操作个数,其余操作个数。
接下来一行 $n$ 个整数,表示 $V_{1}\dots V_{n}$。
接下来 $n-1$ 行,每行两个整数 $x,y$,表示 $x$ 和 $y$ 间有一条边。
接下来 $m+q$ 行,每行两到三个整数,第一个数为操作序号,接下来为相应的操作。
输出格式
若干行,表示 $1,3,4,5$ 操作的结果。
说明/提示
对于所有数据,保证 $100\le n,m,q\le 10^6$,$0\le V_i\le 2^{31}-1$。详细数据范围如下表。
| 测试点编号 | 时间限制/秒 | $n$ | $m$ | $q$ |
| :-----: | :--------: | :------------------: | :------------------: | :-------------------: |
| $1$ | $1$ | $ 100 $ | $ 100 $ | $ 4 \times 10 ^ 5 $ |
| $2,3$ |$1$ | $ 100 $ | $10^ { 6 }$ | $ 4 \times 10 ^ 5 $ |
| $4,5$ | $1$ | $ 10 ^ 4$ | $100$ | $ 4 \times 10 ^ 5 $ |
| $6,7,8$ | $ 1 $ | $ 10 ^ 4$ | $10 ^ 6$ | $ 4 \times 10 ^ 5 $ |
| $9$ | $ 1.8 $ | $ 10 ^ 6$ | $100$ | $ 10^6$ |
| $10$ | $ 2.3 $ | $ 10 ^ 6$ | $ 10^6$ | $ 10 ^ 6$ |