#P11123. [ROIR 2024] 树根 (Day 1)

    ID: 12491 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2024Special JudgeROIR(俄罗斯)

[ROIR 2024] 树根 (Day 1)

背景

翻译自 ROIR 2024 D1T4。

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

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

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

题目描述

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

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

输入格式

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

接下来的 n−1n - 1 行每行包含两个整数 uiu_i 和 viv_i (1≤ui,vi≤n1 \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

提示

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

子任务 分值 特殊性质
11 55 ui=i,vi=i+1,t=0u_i=i,v_i=i+1,t=0
22 k=1,n≤2000,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 n≤16n\le16
66 1010 n≤50n\le50
77 n≤400n\le400
88 n≤2000n\le2000
99 2525 n×k≤50000n\times k\le50000
1010 1515 无

对于 100%100\% 的数据,2≤n≤2×1052 \leq n \leq 2 \times 10^5,1≤k≤n−11 \leq k \leq n - 1,n×k≤2×105n \times k \leq 2 \times 10^5,0≤t≤10 \leq t \leq 1,1≤ui,vi≤n1 \leq u_i, v_i \leq n。