时间限制2s,内存限制1G
题目背景
有两棵树小 A 和小 B,小 A 发育不良,小 B 发育的很好。
为了追上小 B 的发育,小A 开始了魔改之路。
题目描述
小 A 有 n 个节点,小 B 有 m 个节点。每一个节点都有一种颜色。小 A 和小 B 都以一号节点为根。
为了追赶小 B,小 A 进行了 q 次发育操作。
对于每一次操作先读入一个整数 P 表示操作类型。
若 P=1,表示一次询问,那么接下来读入四个整数 P1,P2,P3,P4。
我们令 lt 为上一次询问的答案,那么令 D1=P3⊕lt,D2=P4⊕lt,lt 初始时为 0。
小 A 希望你能回答出小 A 的 P1 子树内离 P1 距离不超过 D1 和小 B 的 P2 子树内离 P2 距离不超过 D2 的节点中一共有多少种不同的颜色。
若 P=2,表示小 A 对自己进行了一次魔改发育,接下来读入两个整数 S1,S2 表示小 A 将自己的 S1 节点的颜色魔改为了 S2。
输入格式
第一行读入三个整数 n,m,q。
接下来读入 n−1 行,每行两个正整数 u,v,表示有一条边连接小 A 的 u 和 v。
然后读入 m−1 行,每行两个正整数 u,v,表示有一条边连接小 B 的 u 和 v。
紧接着读入 n 行,每行一个正整数 v1,第 i 行表示小 A 的第 i 号节点的颜色。
还需要读入 m 行,每行一个正整数 v2,第 i 行表示小 B 的第 i 号节点的颜色。
最后再读入 q 个询问,询问格式见题目描述。
输出格式
对于每一个询问单独输出一行,每行一个整数表示答案。
样例数据
样例输入
5 5 5
4 3
1 3
5 4
2 3
4 2
5 4
3 2
1 3
4
1
3
5
4
1
5
1
2
3
1 2 1 1 2
1 1 5 2 2
1 4 1 2 3
1 5 4 2 2
1 4 1 1 3
样例输出
2
2
2
2
3
子任务
n≤20,m≤2×105,q≤106
P1≤n,P2≤m,1≤P3,P4≤2×105
- Subtask 1 (10%): m,q≤2000
- Subtask 2 (20%): 不存在 2 操作
- Subtask 3 (30%): m,q≤105
- Subtask 4 (10%): n=1
- Subtask 5 (30%): 五特殊限制。