#lg15947. [JOI Final 2026] 集邮 5 / Collecting Stamps 5

[JOI Final 2026] 集邮 5 / Collecting Stamps 5

AdditionalFile5671.zip

#5671. 「JOI 2026 Final Day3」邮戳拉力赛 5

标签: 传统 | 时间限制: 3000 ms | 内存限制: 1024 MiB |

题目描述

题目译自 JOI 2026 Final Day3 T3 「スタンプラリー 5 / Collecting Stamps 5

JOI 君居住的 IOI 国有 NN 个城市,编号从 11NN。此外,IOI 国还有 N1N-1 条道路,编号从 11N1N-1。第 jj 条道路 (1jN1)(1 \leq j \leq N-1) 双向连接城市 UjU_jVjV_j。在该国,从任意一个城市出发,都可以通过若干条道路到达任何另一个城市。

IOI 国即将举办一场集章拉力赛。每个城市都计划设置一个集章台。城市 ii (1iN)(1 \leq i \leq N) 的集章台将于时刻 TiT_i 设置完成。

JOI 君决定参加这场集章拉力赛。他将在时刻 00 从任意一个城市开始行动。此外,在时刻 00 时,JOI 君的初始体力为 DD

当 JOI 君在时刻 tt 位于城市 ii 时,他会采取以下行动:

  1. 首先,如果当前所在的城市已经设置了集章台,则盖章。也就是说,如果 TitT_i \leq t,则盖一个章。
  2. 接下来,选择结束拉力赛或是移动到另一个城市。但是,只有当存在与城市 ii 有道路相连且尚未访问过的城市,并且当前的体力不少于 11 时,他才能选择移动到另一个城市。
  3. 如果 JOI 君选择移动,他会从与城市 ii 有道路连接且尚未访问过的城市中选择一个城市 jj 进行移动。此时体力减少 11,并于时刻 t+1t+1 到达城市 jj
  4. 如果 JOI 君选择结束拉力赛,若在此之前他至少盖过一次章,则视为集章拉力赛成功,他可以当场领取一份奖品;否则,视为集章拉力赛失败。

除了城市间的移动时间外,其他时间均可忽略。请注意,JOI 君不能停留在同一个城市不动。

作为大赛的运营者,你需要为 JOI 君成功完成拉力赛的情况在每个城市准备奖品。由于奖品数量有限,你希望在必要且最小限度的城市准备奖品。然而,你并不知道 JOI 君会从哪个城市开始行动。因此,对于每个 ss (1sN)(1 \leq s \leq N),你想要求出:如果 JOI 君从城市 ss 开始行动,有多少个城市 gg (1gN)(1 \leq g \leq N) 满足「JOI 君在城市 gg 结束拉力赛时,有成功完成拉力赛的可能性」。

给定 IOI 国的城市与道路信息、JOI 君的体力以及集章台的设置时刻,请编写一个程序,对于每个城市,求出当 JOI 君从该城市开始行动时,需要准备奖品的城市数量。

输入格式

第一行包含两个整数 N,DN, D

第二行包含 NN 个整数 T1,T2,,TNT_1,T_2,\cdots ,T_N

接下来的 NN 行,其中第 ii 行包含两个整数 Ui,ViU_i, V_i

输出格式

在标准输出中输出 NN 行。第 ss (1sN)(1 \leq s \leq N) 行应输出当 JOI 君从城市 ss 开始行动时,需要准备奖品的城市数量。

样例 1

输入

5 2
2 2 0 1 3
1 2
2 3
2 4
4 5

输出

2
3
4
2
2

s=1s=1 时,JOI 君的一种行动示例如下:

  • JOI 君时刻 00 位于城市 11,并采取以下行动。
  • 城市 11 的集章台尚未设置完成,因此 JOI 君不盖章。
  • JOI 君当前的体力为 22。他选择移动到与城市 11 相连且尚未访问过的城市 22
  • JOI 君的体力减少 11,并于时刻 11 到达城市 22
  • JOI 君时刻 11 位于城市 22,并采取以下行动。
  • 城市 22 的集章台尚未设置完成,因此 JOI 君不盖章。
  • JOI 君当前的体力为 11。他选择移动到与城市 22 相连且尚未访问过的城市 33
  • JOI 君的体力减少 11,并于时刻 22 到达城市 33
  • JOI 君时刻 22 位于城市 33,并采取以下行动。
  • 城市 33 的集章台已经设置完成,因此 JOI 君盖章。
  • JOI 君在此选择结束拉力赛。由于他此前至少盖过一次章,因此集章拉力赛成功。他当场领取奖品。

因此,如果 JOI 君从城市 11 开始行动,并在城市 33 结束拉力赛,存在成功的可能性,所以需要在城市 33 准备奖品。当 JOI 君从城市 11 开始行动时,需要准备奖品的城市仅有城市 33 和城市 44,故第一行输出 22

此外,当 JOI 君从城市 22 开始行动时,需要准备奖品的城市有城市 33、城市 44 和城市 55,共 33 个,故第二行输出 33

该样例满足子任务 3,63, 6 的限制。

样例 2

输入

5 1
0 1 2 1 2
1 2
2 3
3 4
4 5

输出

2
1
2
0
1

该样例满足子任务 1,2,3,4,61, 2, 3, 4, 6 的限制。

样例 3

输入

7 6
2 3 0 4 1 3 4
1 2
2 3
2 4
1 5
1 6
6 7

输出

2
2
7
5
1
2
5

该样例满足子任务 3,5,63, 5, 6 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 2N4000002 \leq N \leq 400000
  • 0DN10 \leq D \leq N-1
  • 0TiN0 \leq T_i \leq N (1iN)(1 \leq i \leq N)
  • 1Uj<VjN1 \leq U_j < V_j \leq N (1jN1)(1 \leq j \leq N-1)
  • 任意两个城市之间都可以通过若干条道路互相到达。
  • 所有输入的数值均为整数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 33 D1D \leq 1
22 77 N3000,(Uj,Vj)=(j,j+1)N \leq 3000, (U_j, V_j) = (j, j+1) (1jN1)(1 \leq j \leq N-1)
33 1010 N3000N \leq 3000
44 1111 (Uj,Vj)=(j,j+1)(U_j, V_j) = (j, j+1) (1jN1)(1 \leq j \leq N-1)
55 4141 D=N1,N150000D = N-1, N \leq 150000
66 2828 无附加限制