#P11123. [ROIR 2024 Day 1] 树根

[ROIR 2024 Day 1] 树根

题目背景

翻译自 ROIR 2024 D1T4

给定一棵由 nn 个节点构成的树和一个数 kk。固定树中的某个节点 ss,并令其为根。

将树的边定向从树根出发。换句话说,将边 (u,v)(u, v) 定向为 uvu \to v,如果在以 ss 为根时,节点 uu 是节点 vv 的父节点。在这种定向下,每个节点都可以从根到达。

定义节点 vv 到节点 ss 的距离为从 ssvv 的最短路径上边的数量。定义节点 ss 的可达性为所有节点到节点 ss 的距离中的最大值。

题目描述

允许在树中增加不超过 kk 条额外的有向边。对于树中的每个节点 ss,确定如果选择节点 ss 作为树根,能够达到的最小可达性是多少。

注意,在某些子任务中,只需要输出顶点编号为 11 的答案。

输入格式

第一行包含三个整数 nnkktt2n2×1052 \leq n \leq 2 \times 10^51kn11 \leq k \leq n - 1n×k2×105n \times k \leq 2 \times 10^50t10 \leq t \leq 1),分别表示树的顶点数量、额外添加的有向边的最大数量限制和一个整数 tt,如果 tt00,则只需输出顶点编号为 11 的答案;如果 tt11,则输出所有顶点的答案。

接下来的 n1n - 1 行每行包含两个整数 uiu_iviv_i1ui,vin1 \leq u_i, v_i \leq n),表示树的一条边。

保证所给的边构成一棵树。

输出格式

如果 t=0t = 0,输出一个整数,即选择顶点编号为 11 作为树根,并且增加不超过 kk 条额外的有向边时,可以达到的最小可达性。

如果 t=1t = 1,输出 nn 个数,第 ii 个数表示选择顶点 ii 作为树根,并且增加不超过 kk 条额外的有向边时,可以达到的最小可达性。

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

提示

下图给出了第一个样例的图片。虚线表示添加的边。对于顶点 1122,最小可达性为 11;对于顶点 334455,最小可达性为 22

子任务 分值 特殊性质
11 55 ui=i,vi=i+1,t=0u_i=i,v_i=i+1,t=0
22 k=1,n2000,t=0k=1,n\le2000,t=0
33 1010 k=1,t=0k=1,t=0
44 55 ui=i,vi=i+1u_i=i,v_i=i+1
55 n16n\le16
66 1010 n50n\le50
77 n400n\le400
88 n2000n\le2000
99 2525 n×k50000n\times k\le50000
1010 1515

对于 100%100\% 的数据,2n2×1052 \leq n \leq 2 \times 10^51kn11 \leq k \leq n - 1n×k2×105n \times k \leq 2 \times 10^50t10 \leq t \leq 11ui,vin1 \leq u_i, v_i \leq n