题号:NC296387
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
PJSK 的虚拟世界有若干个地点,这些地点通过一些道路形成了树形结构。你的目标,就是找到这个世界的“Miku”点。
一共有

个地点,它们由

条长度为

的双向道路连成了一棵无根树结构。其中,如果一个地点只延伸出了一条道路,那么这个地点将称为 Sekai 点。
Miku 点的定义如下:
-
Miku 点一定不是 Sekai 点。
-
Miku 点是符合上一个条件的所有地点中,与相距最近的 Sekai 点距离最大的点。
根据以上信息,请你找出所有的 Miku 点吧!
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下: 第一行,输入一个正整数
)
,表示地点数。
接下来

行,每行输入两个整数
)
代表一条双向道路。
对于同一个测试点,保证所有

之和不超过

。
输出描述:
对于每组数据,第一行输出 Miku 点的个数,第二行按从小到大顺序所有 Miku 点的编号。
示例1
输入
复制
2
4
1 2
2 3
3 4
10
2 1
3 2
4 3
5 4
6 3
7 5
8 7
9 5
10 2
说明
对于第一组样例,可以得知这棵树为

,其中

号点
只延伸出了一条道路,所以它们是 Sekai 点。显然对于

号点,都只需要经过一条边,就可以到达 其中一个 Sekai 点,所以它们都是 Miku 点。
对于第二组样例: