NOIP2007-树网的核

原题链接 Luogu

题面描述

找出直径上一条不长于 \(s\) 的路径,使得到这条路径的最远点最近,求这个最近的最远距离。

解题思路

根据SDOI2013里的结论,我们知道,所有的直径组成了中间的重合部分和两边的分叉部分。

思考一下就会发现,选取位于分叉部分的点是没有任何意义的。因为对于一个分叉点,至少有两个不同直径的端点贡献了到它的最远距离。无论接下来选择哪一条直径,另一条直径的端点到路径的距离都不会缩短,不可能使答案更小。

所以像SDOI2013题解里说的一样,我们先找出重合部分,然后在重合部分上暴力枚举+搜索判断,即可 AC。

AC 代码