AT_joi2026final_i スタンプラリー 5 (Collecting Stamps 5)
题目描述
在 JOI-kun 所居住的 IOI 国,有 $N$ 个小镇,从 $1$ 到 $N$ 编号。此外,IOI 国中有 $N-1$ 条道路,从 $1$ 到 $N-1$ 编号。第 $j$ 条道路($1 \leq j \leq N-1$)连接着两个小镇 $U_j$ 和 $V_j$,并且是双向的。通过这些道路,从任意一个小镇都可以到达其它任意小镇。
现在 IOI 国要举办一次盖章集会活动。每个小镇都会设立一个盖章点。第 $i$ 个小镇的盖章点会在时刻 $T_i$ 被安装好。
JOI-kun 决定参加盖章集会。在时刻 $0$,JOI-kun 从某个小镇出发,并且初始体力为 $D$。
当 JOI-kun 在时刻 $t$ 到达第 $i$ 个小镇时,他会执行以下操作:
1. 首先,如果当前小镇的盖章点已经安装完成(即 $T_i \leq t$),他就可以盖章。
2. 接下来,他可以选择结束盖章集会,或者前往相邻(通过道路直接连通)且尚未拜访过的小镇。只有当他当前体力至少为 $1$ 并且存在尚未访问的相邻小镇时,才能移动。
3. 如果 JOI-kun 选择移动,他可以选择任意一个与当前小镇通过道路相连且尚未拜访的小镇 $j$,前往该处。每移动一次,体力减 $1$,并在 $t+1$ 时刻抵达小镇 $j$。
4. 如果 JOI-kun 选择结束盖章集会,若他至少盖过一次章,则此次集会视为成功,可以在当前位置领取奖励。否则,集会失败。
除小镇之间的移动外,其它时间可视作忽略不计。注意,JOI-kun 不能在同一小镇原地停留。
你作为活动策划人,如果 JOI-kun 集会成功,你需要在相关小镇准备奖励品。但奖励品数量有限,因此你希望准备的奖励数量尽量少。不幸的是,你并不知道 JOI-kun 最先从哪个小镇出发。因此,对于每个 $s$($1 \leq s \leq N$),你需要计算,如果 JOI-kun 从第 $s$ 个小镇出发,需要在哪些小镇准备奖励品。即你需要统计有多少个 $g$($1 \leq g \leq N$),使得存在一种路径走法,使 JOI-kun 能成功地在小镇 $g$ 结束集会。
给定 IOI 国的小镇与道路信息、JOI-kun 的体力以及各小镇盖章点的安装时间,请编写程序,对于每个起点小镇,输出需要准备奖励品的小镇数量。
输入格式
从标准输入读取以下数据。
> $N$ $D$ $T_1$ $T_2$ $\cdots$ $T_N$ $U_1$ $V_1$ $U_2$ $V_2$ $\vdots$ $U_{N-1}$ $V_{N-1}$
输出格式
输出 $N$ 行,第 $s$ 行($1 \leq s \leq N$)为 JOI-kun 从第 $s$ 个小镇出发时,需要准备奖励品的小镇数量。
说明/提示
## 子任务
1.($3$ 分)$D \leq 1$。
2.($7$ 分)$N \leq 3\,000$,并且 $(U_j, V_j) = (j, j+1)$($1 \leq j \leq N-1$)。
3.($10$ 分)$N \leq 3\,000$。
4.($11$ 分)$(U_j, V_j) = (j, j+1)$($1 \leq j \leq N-1$)。
5.($41$ 分)$D = N-1$,$N \leq 150\,000$。
6.($28$ 分)无额外限制。
---
## 样例解释 1
以下展示一个当 $s=1$ 时 JOI-kun 的移动示例:
- 在时刻 $0$,JOI-kun 在小镇 $1$,进行如下操作:
- 小镇 $1$ 的盖章点尚未安装,因此无法盖章。
- 当前体力为 $2$,可向小镇 $2$(唯一未访问的相邻小镇)移动。
- 体力减 $1$,在时刻 $1$ 抵达小镇 $2$。
- 在时刻 $1$,JOI-kun 在小镇 $2$,进行如下操作:
- 小镇 $2$ 的盖章点尚未安装,无法盖章。
- 当前体力为 $1$,可向小镇 $3$ 移动。
- 体力减 $1$,在时刻 $2$ 抵达小镇 $3$。
- 在时刻 $2$,JOI-kun 在小镇 $3$,进行如下操作:
- 小镇 $3$ 的盖章点已安装,进行盖章。
- JOI-kun 选择在此处结束活动,由于至少盖过一次章,活动成功并领取奖励。
因此,当 JOI-kun 从小镇 $1$ 出发、在小镇 $3$ 结束时,集会可以成功,需要在小镇 $3$ 准备奖励品。同理,从小镇 $1$ 出发时,仅需在小镇 $3$ 和小镇 $4$ 准备奖励品,所以输出的第一行为 $2$。
当 JOI-kun 从小镇 $2$ 出发时,仅需在小镇 $3$、$4$、$5$ 准备奖励品,因此输出的第二行为 $3$。
本例输入满足子任务 $3,6$ 的约束。
---
## 样例解释 2
本输入满足子任务 $1,2,3,4,6$ 的约束。
---
## 样例解释 3
本输入满足子任务 $3,5,6$ 的约束。
# 约束条件
- $2 \leq N \leq 400\,000$。
- $0 \leq D \leq N-1$。
- $0 \leq T_i \leq N$($1 \leq i \leq N$)。
- $1 \leq U_j < V_j \leq N$($1 \leq j \leq N-1$)。
- 所有小镇之间都连通。
- 输入数据均为整数。
由 ChatGPT 5 翻译