#P5565. 奶牛健美操
奶牛健美操
题目描述
为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间的小路上奔跑。这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径。
简单的说来, 这些点的布局就是一棵树,且每条边等长,都为。 对于给定的一个奶牛路径集合,精明的奶牛们会计算出任意点对路径的最大值, 我们称之为这个路径集合的直径。如果直径太大,奶牛们就会拒绝锻炼。
把每个点标记为。为了获得更加短的直径,他可以选择封锁一些已经存在的道路,这样就可以得到更多的路径集合, 从而减小一些路径集合的直径。 我们从一棵树开始,可以选择封锁条双向路,从而获得 个路径集合。
你要做的是计算出最佳的封锁方案,使得他得到的所有路径集合 直径的最大值旧能小。
告诉你所有条双向道路,每条表述为:顶点和 ; 连接。
我们来看看如下的例子:
线性的路径集合个顶点的树如果可以封锁两条道路,他可能的选择如下: 这样最长的直径是即是最优答案当然不是唯一的。
输入格式
第行: 两个空格分隔的整数和
第行: 两个空格分隔的整数和
输出格式
第行:一个整数,表示可以获得的最大的直径。
样例
输入样例
7 2
6 7
3 4
6 5
1 2
3 2
4 5
输出样例
2