P12411 抱月
题目描述
记 $P(u,v)$ 表示树上从节点 $u$ 到节点 $v$ 依次经过的点组成的序列,包括 $u$ 和 $v$。
记 $dep_u$ 表示在以 $1$ 为树根时,节点 $u$ 的深度(根节点深度为 $0$)。
记 $\operatorname{LCA}(u,v)$ 为树上节点 $u$ 和 $v$ 在以 $1$ 为树根时的最近公共祖先。
抱月有一棵树,树根为 $1$,一共有 $n$ 个节点。其中第 $i$ 个节点的颜色是 $c_i$。她发现,对于一个节点 $x$ 和整数 $k$,如果将 $P(x,1)$ 中所有满足:$dep_y\equiv dep_x \pmod{k}$ 的 $y$ 都拿出来,这些 $y$ 是有意义的。
所以,你需要解决这样一个问题。给定 $m$ 次询问,每次两个整数 $x,k$,求**删掉** $P(x,1)$ 中所有满足 $dep_y\equiv dep_x \pmod{k}$ 的 $y$ 后,满足 $dep_z \le dep_x$ 的 $z$ 中不同 $c_z$ 的数量。**每次询问独立**,也就是说这次删的点在下一次询问会恢复。
如果不理解,请看样例解释。
输入格式
第一行两个整数 $n,m$。
第二行 $n$ 个整数 $c_i$。
接下来 $n-1$ 行,每行两个整数 $u~v$,表示 $u~v$ 之间有连边。
接下来 $m$ 行,每行两个整数 $x_i~k_i$,表示询问。
输出格式
共 $m$ 行,每行一个整数,表示答案。
说明/提示
对于所有测试数据,保证 $1 \le n,m,k_i \le 10^5$,$1 \le u,v,x_i \le n$,$0 \le c_i \le 10^5$。
| Subtask | 限制 | 分值 |
| :----------: | :----------: | :----------: |
| $0$ | $n,m \le 10^3$ | $10$ |
| $1$ | $c_i$ 相同 | $4$ |
| $2$ | $k_i > \max\limits_{j=1}^{n} dep_j$ | $16$ |
| $3$ | $n,m \le 5\times 10^4$ | $30$ |
| $4$ |无 | $40$ |
**样例解释**
对于第 $1$ 个询问,满足条件的 $y$ 为:$1,3$。删掉之后,满足条件的 $z$ 为:$2,4$。其中 $c_1=2,c_4=8$,所以答案为 $2$。
对于第 $3$ 个询问,满足条件的 $y$ 为:$1,5$。删掉之后,满足条件的 $z$ 为:$2,3,4,6,9$。其中 $c_2=1,c_3=4,c_4=8,c_6=2,c_9=7$,所以答案为 $5$。