#JSUTCPC2026H. Poem of Sylvas —— 万木诗
Poem of Sylvas —— 万木诗
题面描述
我沉底的一生、浪子与云霞
如阅历浅浅的游鸟,耽于河岸
是呢喃的风雨外,密林耳语:
寻见她,便寻见春日
是故层云蔽日,万木成诗

春天来了,Paper 想要把一棵树保存起来,她知道存储的成本取决于树的直径[1]。为了降低存储空间保证不折断枝条,她的目标是首先尽可能地缩小直径,可以对这棵树执行以下操作:
- 选取两个顶点 和 ,设从 到 的简单路径[2]上的顶点序列为 ,其中 ,;
- 移除路径上的所有边;换句话说,移除边 ;
- 将顶点 直接连接到 ,换句话说,添加边 。
可以证明,经过上述操作后,该图仍然是一棵树,请帮助她确定实现最小直径所需的最少操作次数。
输入描述
每个测试包含多个测试用例,第一行包含测试用例的数量 ();测试用例的描述如下:
每个测试用例的第一行包含一个整数 ()表示树中结点的数量。
每个测试用例接下来的 行描述了一棵树:每行包含两个整数 和 (,),表示顶点 和 之间的边并保证这些边构成一棵树。
保证所有测试用例的 之和不超过 。
输出描述
对于每个测试用例,输出一个整数表示最小化直径的最少操作次数。
样例
4
4
1 2
1 3
2 4
2
2 1
4
1 2
2 3
2 4
11
1 2
1 3
2 4
3 5
3 8
5 6
5 7
7 9
7 10
5 11
1
0
0
4
注释
在第一个测试用例中,原始树的直径为 3。Paper 可以对 和 执行操作。如图所示,该运算包含以下步骤:
- 移除树径 , 和 。
- 添加树径 , 和 。
经过上述操作,直径减小为 。可以证明 是最小直径。
在第二个样例中,树的直径为 1。可以证明 1 已经是最小值,因此 Paper 无需执行任何操作。