#P16197. [Ncpc2015]Adjoin the Networks合并网络

[Ncpc2015]Adjoin the Networks合并网络

题目描述

你的老板有若干个彼此无法通信的计算机网络,希望你用新的网线把这些网络连接起来。已有的网线不能改动。

老板要求使用的新增网线数量尽量少。由于网线是光纤,长度并不重要,真正昂贵的是接头;因此,只要能用最少数量的新网线把所有网络连通即可。

已知每个原有网络内部也已经使用了尽可能少的网线,也就是说每个连通块都是一棵树。

在网络中,一个数据包经过一条网线称为一次“跳”。连接所有网络后,你希望任意两台计算机之间所需的最大跳数尽量小。请输出在最优连接方式下,这个最大跳数是多少。

输入格式

第一行包含两个整数 c,c, \ell,其中:

  • 1c1051 \le c \le 10^5,表示计算机数量;
  • 0c10 \le \ell \le c-1,表示已有网线数量。

接下来 \ell 行,每行包含两个不同整数 a,ba,b,表示计算机 aabb 之间已有一条网线。

所有计算机编号为 0,1,,c10,1,\ldots,c-1

输出格式

输出一个整数,表示连接所有网络后,任意两台计算机之间最大跳数的最小可能值。

输入输出样例 #1

输入 #1

6 4
0 1
0 2
3 4
3 5

输出 #1

3

输入输出样例 #2

输入 #2

11 9
0 1
0 3
0 4
1 2
5 4
6 4
7 8
7 9
7 10

输出 #2

4