#P16707. 树题
树题
题目描述
小 T 有一棵包含 个点的树,第 个点的权值为 。
小 T 维护一个集合 。每当他向 中加入一个整数 时,会依次执行以下操作:
- 将 中所有大于等于 的数都加 ;
- 将 加入集合 。
现在有 次询问。每次询问给定两个点 和一个参数 。
每次询问开始时,集合 为空。小 T 从点 沿树上的简单路径走到点 。每经过一个点 (包括起点和终点),他都会按照上述规则将 加入集合 。
请你求出操作结束后,集合 中有多少个数不超过 。
更形式化地,设从 到 的简单路径依次经过
其中 、。集合 初始为空,依次按照上述规则加入
询问采用强制在线方式,具体规则见输入格式。
输入格式
第一行输入三个整数 ,分别表示树的点数、询问次数和强制在线参数。
第二行输入 个整数 ,表示各点的权值。
接下来 行,每行输入两个整数 ,表示树中存在一条连接点 和点 的边。
接下来 行,每行输入三个整数 。本次询问的真实参数由下式得到:
$$\begin{aligned} u &= u'\mathbin{\mathrm{xor}}(\mathrm{las}\times T),\\ v &= v'\mathbin{\mathrm{xor}}(\mathrm{las}\times T),\\ k &= k'\mathbin{\mathrm{xor}}(\mathrm{las}\times T), \end{aligned}$$其中 表示按位异或, 表示上一次询问的答案。第一次询问前令 。
输出格式
输出 行,每行一个整数,表示对应询问的答案。
样例
7 6 0
2 3 4 1 5 2 1
1 3
6 3
7 1
2 3
5 6
3 4
4 7 5
2 5 6
3 3 4
1 4 6
5 4 10
7 6 4
3
4
1
3
4
3
样例解释
第一次询问中,小 T 经过的路径为
经过的点权依次为 ,集合 的变化过程为
$$\varnothing \to\{1\} \to\{1,4\} \to\{1,2,5\} \to\{1,2,3,6\}.$$最终集合中有 个不超过 的数,因此答案为 。
第二次询问结束后,集合 为 ,因此答案为 。
数据范围
- 对于 的测试数据,;
- 对于 的测试数据,;
- 对于另外 的测试数据,、;
- 对于另外 的测试数据,;
- 对于另外 的测试数据,;
- 对于全部测试数据:
保证给出的边构成一棵树,且解码后的询问参数合法。