#P3019. 「NOIP2007」树网的核

「NOIP2007」树网的核

Description

T=(V,E,W)T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称 TT 为树网(treenetworktreenetwork),其中 V,EV, E 分别表示结点与边的集合, WW 表示各边长度的集合,并设 TTnn 个结点。

路径:树网中任何两结点 a,ba,b 都存在唯一的一条简单路径,用 d(a,b)d(a,b) 表示以 a,ba,b 为端点的路径的长度,它是该路径上各边长度之和。我们称 d(a,b)d(a,b)a,ba,b 两结点间的距离。

一点 vv 到一条路径 PP 的距离为该点与 PP 上的最近的结点的距离:

$$d(v,P)=min\{d(v,u),\space u为\space\space路\space\space径\space\space\space\space P\space 上\space\space的\space\space节\space\space点\space\space\} $$

树网的直径:树网中最长的路径称为树网的直径。对于给定的树网 TT ,直径不一定是唯一的,但可以证明:各直径的中点(不一定恰好是某个结点,可能在某条边的内部)是唯一的,我们称该点为树网的中心。

偏心距 ECC(F)ECC(F) :树网 TT 中距路径 FF 最远的结点到路径 FF 的距离,即

ECC(F)=max{d(v,F)vV}ECC(F)=max\{d(v,F),v\in V\}

任务:对于给定的树网 T=(V,E,W)T=(V, E,W) 和非负整数 ss ,求一个路径 FF ,它是某直径上的一段路径(该路径两端均为树网中的结点),其长度不超过 ss(可以等于s),使偏心距 ECC(F)ECC(F) 最小。我们称这个路径为树网 T=(V,E,W)T=(V,E,W) 的核(CoreCore)。必要时, FF 可以退化为某个结点。一般来说,在上述定义下,核不一定只有一个,但最小偏心距是唯一的。

下面的图给出了树网的一个实例。图中, ABA-BACA-C 是两条直径,长度均为 2020 。点 WW 是树网的中心, EFEF 边的长度为5。如果指定 s=11s=11 ,则树网的核为路径 DEFGDEFG (也可以取为路径 DEFDEF ),偏心距为 88 ;如果指定 s=0s=0 (或 s=1s=1s=2s=2 ),则树网的核为结点 FF ,偏心距为 1212

若图片失效请下载附加文件

Input Format

输入文件 core.incore.in 包含 nn 行:

11 行,两个正整数 nnss ,中间用一个空格隔开。其中 nn 为树网结点的个数, ss 为树网的核的长度的上界。设结点编号依次为 1,2,,n1, 2, \cdots, n

从第 22 行到第 nn 行,每行给出 33 个用空格隔开的正整数,依次表示每一条边的两个端点编号和长度。例如,“22 44 77”表示连接结点 2244 的边的长度为 77

所给的数据都是正确的,不必检验。

Output Format

输出文件 core.outcore.out 只有一个非负整数,为指定意义下的最小偏心距。

Sample

core1.in

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

core1.out

5

core2.in

8 6
1 3 2
2 3 2
3 4 6
4 5 3
4 6 4
4 7 2
7 8 3

core2.out

5

Hint

16%16\% 的数据满足:n15n\leq15

28%28\% 的数据满足:n80n\leq80

40%40\% 的数据满足:n300n\leq300s1,000s\leq1,000

60%60\% 的数据满足:n2,000n\leq2,000

$80\%$ 的数据满足:$n\leq100,000$;

$100\%$ 的数据满足:$5\leq n \leq500,000$,$0\leq s \leq 2\times10^9$ </font>,边长度为不超过 $1,000$ 的正整数。