AT_joig2026final_h スタンプラリー 5 (Collecting Stamps 5)
题目描述
JOI 君居住的 IOI 国共有 $N$ 个城市,编号从 $1$ 到 $N$。在 IOI 国中,有 $N-1$ 条道路,编号从 $1$ 到 $N-1$。第 $j$ 条道路($1 \leq j \leq N-1$)连接城市 $U_j$ 和城市 $V_j$,道路是双向的。无论从哪个城市出发,总可以通过若干道路到达任何其他城市。
接下来,IOI 国将举办一次集章活动。每个城市都计划安装一个集章台。第 $i$ 个城市($1 \leq i \leq N$)的集章台将在时刻 $T_i$ 安装完毕。
JOI 君决定参加此次集章活动。他会在时刻 $0$ 从某个城市出发,初始体力为 $D$。
JOI 君在时刻 $t$ 位于城市 $i$ 时,将依次进行如下操作:
1. 首先,如果当前位置上的集章台已经安装好,即 $T_i \leq t$,就可以盖章。
2. 然后,JOI 君可以选择结束集章活动,或前往与当前城市道路相连且尚未到访过的其他城市。仅当还存在未到访的相邻城市且当前体力不少于 $1$ 时,才可以前往其它城市。
3. 若 JOI 君决定移动,则选择一个与当前城市道路相连且尚未到访的城市 $j$,并前往该城市。体力减少 $1$,在时刻 $t+1$ 抵达城市 $j$。
4. 若选择结束集章活动,且之前至少盖过一次章,则认为集章活动成功,可当场领取礼物。否则视为集章失败。
除了城市之间的移动外,其他所有行动花费时间可忽略。注意,JOI 君不能停留在同一个城市。
你作为活动主办方,需要为每个城市准备足够的礼物,但总数量有限,所以希望只在必要的城市准备礼物。然而,你并不知道 JOI 君将从哪个城市出发。因此,你需要对每个 $s$($1\leq s\leq N$),求出 JOI 君以城市 $s$ 为起点时,哪些城市 $g$($1\leq g\leq N$)可能会在集章活动成功后领取礼物,即必须准备礼物的城市数。
给定 IOI 国各城市和道路的信息、JOI 君的体力和各城市集章台的安装时刻,请编写程序,计算对于每个起点城市,从该城市出发时需要准备礼物的城市数。
---
输入格式
输入按以下格式从标准输入给出。
> $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 君以城市 $s$ 为起点时,必须准备礼物的城市数。
---
说明/提示
## 子任务
1. ($5$ 分) $D \leq 1$。
2. ($9$ 分) $N \leq 3000$,且 $(U_j, V_j) = (j, j+1)$($1\leq j\leq N-1$)。
3. ($17$ 分) $N \leq 3000$。
4. ($17$ 分) $(U_j, V_j) = (j, j + 1)$($1\leq j\leq N-1$)。
5. ($33$ 分) $D = N-1$,$N \leq 150\,000$。
6. ($19$ 分) 没有额外约束。
---
## 样例说明 1
以 $s=1$ 为例,JOI 君的行动路线举例如下:
- JOI 君在时刻 $0$ 位于城市 $1$。
- 此时城市 $1$ 尚未安装集章台,无法盖章。
- 当前体力为 $2$,可以前往与城市 $1$ 相连唯一未到访的城市 $2$。
- 体力减少 $1$,时刻 $1$ 到达城市 $2$。
- 在时刻 $1$,JOI 君身处城市 $2$。
- 此时城市 $2$ 也尚未安装集章台,无法盖章。
- 体力还有 $1$,可前往城市 $3$。
- 体力再减 $1$,时刻 $2$ 到达城市 $3$。
- 在时刻 $2$,JOI 君身处城市 $3$。
- 此时城市 $3$ 已安装好集章台,可以盖章。
- 在此选择结束集章活动,已至少盖过一次章,成功集章并领取礼物。
因此,从城市 $1$ 出发,有可能在城市 $3$ 结束且成功,所以需要准备礼物。由此推得,从城市 $1$ 出发时需要准备礼物的城市仅为城市 $3$ 和城市 $4$,所以第 $1$ 行输出 $2$。
同理,从城市 $2$ 出发时,需要准备礼物的城市为城市 $3$、城市 $4$ 和城市 $5$,第 $2$ 行输出 $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 翻译