奶牛健美操

Posted 【對策局】

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奶牛健美操相关的知识,希望对你有一定的参考价值。

【题目描述】

农夫让奶牛们在牧场之间奔跑以保持健康。这些牧场的布局是一棵树,且每条边等长度都为1。

对于给定的一个路径集合,精明的奶牛们会计算出任意点对路径的最大值,我们称之为这个路径集合的直径。

农夫把每个点标记为1~V(2 <= V <= 100000)。为了获得更加短的直径,他可以选择封锁一些已经存在的道路,这样就可以得到更多的路径集合,从而减小一些路径集合的直径。

我们从一棵树开始,农夫可以选择封锁S(1 <= S < V)条双向路,从而获得S+1个路径集合。现要求计算出最佳的封锁方案,使得他得到的所有路径集合直径的最大值尽可能小。

农夫会告诉你所有的(V-1条)双向道路,每条道路表述为:顶点Ai(1 <= Ai <= V)和Bi(1 <= Bi <= V,Ai ≠ Bi)连接。

我们来看看如下的例子:

线性的路径集合(7个顶点的树)

1

  \

  2

   \

     3

      \

      4

       \

       5

          \

          6

         \

           7

如果农夫可以封锁两条道路,他可能的选择如下:

1

  \

  2

   X

     3

      \

      4

       X

       5

          \

          6

         \

           7

这样最长的直径是2,即是最优答案(当然,不是唯一的)。

【输入描述】

第1行输入两个整数V和S;

第2~V行,每行输入两个整数Ai和Bi

【输出描述】

输出一个整数,表示农夫可以获得的最大直径。

【样例输入】

7 2

6 7

3 4

6 5

1 2

3 2

4 5

【样例输出】

2

【数据范围及提示】

对于50%的数据,V <= 100;

对于100%的数据,V <= 100000。

以上是关于奶牛健美操的主要内容,如果未能解决你的问题,请参考以下文章

[Usaco2010 Dec]Exercise 奶牛健美操

奶牛健美操(codevs 3279)

CODEVS 3279 奶牛的健美操

[Usaco2010 Dec]Exercise 奶牛健美操

bzoj2097[Usaco2010 Dec]Exercise 奶牛健美操 二分+贪心

奶牛健美操