#P15877. [Roi2024 Regional]选择首都

[Roi2024 Regional]选择首都

题目描述

给定一棵 nn 个顶点的无向树和一个整数 kk

选择树上的某个顶点 ss 作为首都。然后将所有树边都按从首都出发的方向定向。也就是说,如果把树以 ss 为根,那么每条边都从父亲指向儿子。

此时从首都 ss 可以到达所有顶点。定义顶点 ss可达性为从 ss 到所有顶点的最短路长度中的最大值。

现在允许向这棵树中额外添加不超过 kk 条有向边。

对于每个顶点 ss,请计算如果选择 ss 作为首都,并额外添加不超过 kk 条有向边后,能够达到的最小可达性。

注意:在部分子任务中,只要求输出顶点 11 作为首都时的答案。

输入格式

第一行包含三个整数 n,k,tn,k,t

  • nn 表示树的顶点数;
  • kk 表示最多可以添加的额外有向边数量;
  • t=0t=0 表示只需要输出顶点 11 的答案;
  • t=1t=1 表示需要输出所有顶点的答案。

接下来 n1n-1 行,每行包含两个整数 ui,viu_i,v_i,表示树上的一条无向边。

输出格式

如果 t=0t=0,输出一个整数,表示选择顶点 11 作为首都时可以达到的最小可达性。

如果 t=1t=1,输出 nn 个整数,第 ii 个整数表示选择顶点 ii 作为首都时可以达到的最小可达性。

数据范围

2n2105,2 \le n \le 2\cdot 10^5, 1kn1,1 \le k \le n-1, nk2105,n\cdot k \le 2\cdot 10^5, 0t1.0\le t\le 1.

输入保证给出的边构成一棵树。

子任务

子任务 分值 附加限制
1 5 树是一条链,且 t=0t=0
2 k=1,n2000,t=0k=1,n\le 2000,t=0
3 10 k=1,t=0k=1,t=0
4 5 树是一条链
5 n16n\le 16
6 10 n50n\le 50
7 n400n\le 400
8 n2000n\le 2000
9 25 nk50000n\cdot k\le 50000
10 15 无附加限制

样例

样例 1

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

样例 2

3 1 0
1 2
2 3
1

样例说明