[TJOI2018] 异或
题目描述
现在有一颗以 $1$ 为根节点的由 $n$ 个节点组成的树,节点从 $1$ 至 $n$ 编号。树上每个节点上都有一个权值 $v_i$。现在有 $q$ 次操作,操作如下:
- $1~x~z$:查询节点 $x$ 的子树中的节点权值与 $z$ 异或结果的最大值。
- $2~x~y~z$:查询节点 $x$ 到节点 $y$ 的简单路径上的节点的权值与 $z$ 异或结果最大值。
输入输出格式
输入格式
输入的第一行是两个整数,分别代表结点个数 $n$ 和询问个数 $q$。
第二行有 $n$ 个整数,第 $i$ 个整数表示点 $i$ 的的权值 $v_i$。
接下来 $n-1$ 行,每行有两个整数 $u, v$,表示存在一条连结 $u$ 和 $v$ 的边。
接下来 $q$ 行,每行首先有一个整数 $op$,代表操作类型。
- 若 $op = 1$,则一个空格后有两个整数 $x, z$,代表查询节点 $x$ 的子树中的节点权值与 $z$ 异或结果的最大值。
- 若 $op = 2$,则一个空格后有三个整数 $x, y, z$,代表查询节点 $x$ 到节点 $y$ 的简单路径上的节点的权值与 $z$ 异或结果最大值。
输出格式
对于每一个查询,输出一行一个整数代表答案。
输入输出样例
输入样例 #1
7 5
1 3 5 7 9 2 4
1 2
1 3
2 4
2 5
3 6
3 7
1 3 5
2 4 6 3
1 5 5
2 5 7 2
1 1 9
输出样例 #1
7
6
12
11
14
说明
#### 数据规模与约定
- 对于 $10\%$ 的数据,保证 $n, q \leq 10^2$;
- 对于 $20\%$ 的数据,保证 $n, q \leq 10^3$;
- 对于 $40\%$ 的数据,保证 $n, q \leq 10^4$;
- 对于 $100\%$ 的数据,保证 $2\leq n, q \leq10^5$,$1 \leq u, v, x, y \leq n$,$1 \leq op \leq 2$,$1 \leq v_i, z \lt 2^{30}$。