AT_joi2019ho_e 珍しい都市 (Unique Cities)
题目描述
JOI 国有 $N$ 个城市,编号为 $1$ 到 $N$。这些城市通过 $N-1$ 条道路相连。第 $i$ 条道路($1 \leq i \leq N-1$)连接城市 $A_i$ 和城市 $B_i$,且道路是双向通行的。任意两个城市之间都可以通过若干条道路互相到达。
JOI 国有若干种特产,每种特产用 $1$ 到 $M$ 的编号表示(可能存在某些编号未被使用)。每个城市生产一种特产,城市 $j$($1 \leq j \leq N$)生产编号为 $C_j$ 的特产。多个城市可能生产同一种特产。
两个城市之间的距离定义为它们之间需要经过的最少道路数。
对于城市 $x$($1 \leq x \leq N$),如果城市 $y$($1 \leq y \leq N,\, y \neq x$)满足对于所有其他城市 $z$($1 \leq z \leq N,\, z \neq x,\, z \neq y$),城市 $x$ 到城市 $y$ 的距离与城市 $x$ 到城市 $z$ 的距离都不相同,则称城市 $y$ 对于城市 $x$ 来说是“珍稀城市”。
JOI 国的大臣 $K$ 想知道,对于每个城市 $j$($1 \leq j \leq N$),从该城市出发,所有“珍稀城市”所生产的特产有多少种。
请你根据 JOI 国的道路信息和每个城市生产的特产编号,编写程序,计算每个城市从自身出发能看到的“珍稀城市”所生产的特产种类数。
输入格式
输入从标准输入读入,格式如下:
> $N$ $M$
> $A_1$ $B_1$
> $\vdots$
> $A_{N-1}$ $B_{N-1}$
> $C_1$ $\cdots$ $C_N$
输出格式
输出共 $N$ 行。第 $j$ 行($1 \leq j \leq N$)输出从城市 $j$ 出发能看到的“珍稀城市”所生产的特产种类数。
说明/提示
### 限制条件
- $2 \leq N \leq 200\,000$。
- $1 \leq M \leq N$。
- $1 \leq A_i \leq N$($1 \leq i \leq N-1$),$1 \leq B_i \leq N$($1 \leq i \leq N-1$)。
- 对于所有 $i$,$A_i$ 和 $B_i$ 均为有效城市编号。
- 任意两个城市之间都可以通过若干条道路互相到达。
- $1 \leq C_j \leq M$($1 \leq j \leq N$)。
### 子任务
1. (4 分)$N \leq 2\,000$。
2. (32 分)$M = 1$。
3. (32 分)$M = N$,且 $C_j = j$($1 \leq j \leq N$)。
4. (32 分)无额外限制。
# 样例说明 1
对于城市 $1$,珍稀城市为城市 $2, 3$,它们生产的特产分别为 $2, 1$,所以答案为 $2$ 种。
对于城市 $2$,没有珍稀城市,所以答案为 $0$ 种。
对于城市 $3$,珍稀城市为城市 $1$,它生产的特产为 $1$,所以答案为 $1$ 种。
对于城市 $4$,珍稀城市为城市 $1, 3$,它们都生产特产 $1$,所以答案为 $1$ 种。
对于城市 $5$,珍稀城市为城市 $1, 3$,它们都生产特产 $1$,所以答案为 $1$ 种。
注意,编号为 $3$ 的特产不存在。
# 样例说明 2
该输入满足子任务 $2$ 的限制条件。
# 样例说明 3
该输入满足子任务 $3$ 的限制条件。
由 ChatGPT 4.1 翻译