loj#P4015. 「eJOI2023」Tree Infection

「eJOI2023」Tree Infection

题目描述

本题译自 eJOI2023 Problem E. Tree Infection

给定一个由 NN 个顶点组成的有根树,以及整数 RRMM。顶点从 11NN 编号,其中顶点 11 为根。树中的其他每个顶点都有一个父节点。

如果选择一个顶点 ss,它和它距离不超过 RR 的所有后代(即从 ss 向下沿着边可以到达的顶点)都会被感染, 其中距离是指顶点之间的边数。当且仅当 uuvv 都没有被感染,且它们之间的路径上被感染的顶点数不超过 MM 时,顶点 uu 才能从顶点 vv 到达。

对于每个可能的选择顶点 ss (1sN)(1 \leq s \leq N),你必须计算顶点对 (u,v)(u, v) 的数量,满足 1u<vN1 \leq u < v \leq Nuuvv 互相可达。

输入格式

第一行包含三个整数:NNRRMM

第二行包含 N1N - 1 个整数:p2,p3,,pNp_2, p_3, \ldots ,p_N,分别表示顶点 2,3,,N2, 3, \ldots ,N 的父节点。

输出格式

输出 NN 行,每行一个整数。第 ss 行表示当选择顶点为 ss 时的顶点对数量。

13 2 2
1 2 3 4 3 6 6 8 2 10 11 1
16
4
15
55
66
36
66
55
66
45
55
66
66

上图对应于 s=2s = 2

可达的顶点对有:(1,13),(7,8),(7,9),(8,9)(1,13), (7,8), (7,9), (8,9)

这个列表不包括顶点对 (1,2)(1,2),因为顶点 22 被感染了。同样,顶点对 (1,5)(1,5) 也不在列表中,因为 1155 之间的路径上有三个被感染的顶点(223344)。

3 0 1
1 2
1
1
1

数据范围与提示

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

  • 2N5×1052 \leq N \leq 5\times 10^5
  • 1pi<i1 \leq p_i < i (2iN)(2 \leq i \leq N)
  • 0RN10 \leq R \leq N - 1
  • 0M2×R+10 \leq M \leq 2 \times R + 1

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

子任务 附加限制 分值
11 N300N \leq 300 2020
22 R=0R = 0 1414
33 M=2×R+1M = 2 \times R + 1 1515
44 M=2×R1M = 2 \times R - 1 1010
55 N5000N \leq 5000 1616
66 无附加限制 2525