AT_kupc2018_m 整数と根付き木
题目描述
## 整数与有根树
现有一棵有根树 $T$,由顶点 $1$ 至 $N$ 编号而成。**最初的根是 $1$ 号点。**
树 $T$ 上有 $N-1$ 条边,第 $i$ 条边连接了顶点 $a_i$ 和 $b_i$。
每个顶点 $v$ 都有自己的整数数组 $A_v$。最初它们都是空的。
这棵有根树 $T$ 被查询了 $Q$ 次。共有 $3$ 种不同的查询操作,每种操作如下:
- `1 v x k` \- 为顶点 $v$ 的子树中的**任意顶点(包括顶点 $v$)**$u$ 添加 $k$ 值 $x$ 至 $A_u$。
- `2 v y z` \- 求顶点 $v$ 处的数组 $A_v$ 中满足 $val$ $xor$ $y$ $\leq$ $z$ 且值为 $val$ 的元素个数。其中 $s$ $xor$ $t$ 是指 $s$ 和 $t$ 的位排中或。
- `3 v` \- 将根节点改为顶点 $v$。
您必须编写一个程序来**依次**处理这些查询。
输入格式
输入通过标准输入,格式如下。
> $N$
> $a_1$ $b_1$
> $a_2$ $b_2$
> .
> .
> $a_{N-1}$ $b_{N-1}$
> $Q$
> $Query_1$
> $Query_2$
> .
> .
> $Query_Q$
- $Query_i$ 以`1 v x k`
,`2 v y z`或`3 v`的形式逐行输入。
输出格式
对于形式为`2 v y z`的查询,按给定的顺序输出答案。
### 样例解释
#### 样例1:
- $1$ $1$ 第二次查询将 $1$ 的值 $1$ 添加到 $A_1$ 、 $A_2$ 、 $A_3$ 和 $A_4$ 中。
- $2$ 第二次查询将 {800266674} 的值 $1$ 添加到 $A_2$ 中。
- $3$ $3$ 第二次查询将 $3$ 值 $1$ 分别添加到 $A_3$ 和 $A_4$ 中。
- $4$ $4$ 第二次查询将顶点 $1$ 的根更改为顶点 $4$ 。
- $5$ $5$ 第二次查询的结果是 $1$ ,即低于 $4$ 的值的个数,因为 $A_1 = \{1\}$ 和 $1$ $xor$ $0 = 1$ 的值都低于 $4$ 。
- $6$ 第二个查询输出 $2$ ,即 $A_2 = \{1,2\}$ 和 $1$ $xor$ $1 = 0$ 和 $2$ $xor$ $1 = 3$ ,所以 $3$ 或更少 $7$
- $7$ 第二次查询输出 $2$ ,这是低于 $2$ 的数值个数,因为 $A_4 = \{1,3\}$ 、 $1$ $xor$ $3 = 2$ 、 $3$ $xor$ $3 = 0$ 。 $2$
- $8$ 第二次查询将 $1$ 值 $3$ 添加到 $A_1$ 、 $A_2$ 和 $A_3$ 。
- 第 $9$ 次查询将 $A_1$ 和 $A_2$ 以及 $A_3$ 和 $A_4$ 的值 $4$ 添加到 $1$ 中。
- 第二个查询 $10$ 通过 $1$ 将 $1$ 的值添加到 $A_1$ 和 $A_2$ 中。
- $11$ 第二次查询通过 $1$ 将 $2$ 的值添加到 $A_2$ 中。
- $12$ $A_1 = \{1,3,4,1\}$ 查询添加了 $1$ $xor$ $0 = 1$ 、 $3$ $xor$ $0 = 3$ 、 $4$ $xor$ $0 = 4$ 、 $4$ $xor$ $0 = 4$ 、 $4$ $4$ $xor$ $0 = 4$ 。 $1$ $xor$ $0 = 1$ ,因此输出 $4$ ,即低于 $4$ 的数值个数。
- 第 $13$ 次查询会产生 $A_2 = \{1,2,3,4,1,2\}$ 和 $1$ $xor$ $1 = 0$ , $2$ $xor$ $1 = 3$ , $3$ $xor$ $1 = 2$ , $4$ $xor$ $1 = 5$ , $1$ $xor$ $1 = 0$ , $2$ $xor$ $1 = 3$ 所以输出 $5$ ,这是低于 $3$ 的值的个数。 $5$
- $14$ ,即 $A_4 = \{1,3,4\}$ 和 $1$ $xor$ $3 = 2$ , $3$ $xor$ $3 = 0$ , $4$ $xor$ $3 = 7$ , 所以 $5$ 是 $3$ $5$ 下面的数值。 $2$ ,即低于 $2$ 的数值个数。
#### 样例3:
输出不一定适合 $32$ 位整数类型。
说明/提示
- 所有输入均为整数。
- $1 \leq N \leq 1.4 \times 10^5$
- $1 \leq Q \leq 1.4 \times 10^5$
- $1 \leq a_i,b_i \leq N$
- $1 \leq v \leq N$
- $0 \leq x,y,z < 2^{30}$
- $1 \leq k \leq 10^9$
- 给定图形是一棵树。