题号:NC249268
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定一棵

个点的树,请找到树上

条两两不同的路径,使得它们们的交尽量长。
路径的定义是一组有序的、两两不同的点

,其中
%2C(x_%7B1%7D%2Cx_%7B2%7D)%20%5Cdots%20(x_%7Bm%7D%2Cv))
之间均有边直接相连。两条路径不同当且仅当它们包含的点集不同(即
%2C(v%2Cu))
算同一条路径)。路径可以只包含一个点

。
路径的长度被定义为路径所包含的
点的个数。不难看出,任意多条树上路径的交还是一条路径。
空路径的长度定义为

。
输入描述:
第一行数据组数
,对于每组数据:
第一行两个正整数
。
接下来

行,每行两个正整数
)
,代表树上的一条边。
保证所有的

之和不超过

输出描述:
对于每组数据,一行一个整数表示答案
示例1
输入
复制
3
4 2
1 2
1 3
1 4
5 3
1 2
2 3
2 4
3 5
3 1
1 2
2 3
备注:
对于第一个样例,可以选择[1,3],[3,4]这两条路径,它们的交是[1,3],长度为2.