#CF1667D. 边消除
边消除
边消除
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定一棵包含 个顶点的树。如果两条边恰好共享一个端点,则称这两条边相邻。
一次操作中,你可以删除任意一条边,但删除时这条边必须恰好与偶数条尚未删除的边相邻。
请给出删除全部边的操作顺序,或判断不存在这样的顺序。
输入格式
第一行包含一个整数 ,表示测试用例数。
对于每组测试用例:
- 第一行包含一个整数 ;
- 接下来 行,每行包含两个整数 ,表示树的一条边。
输出格式
对于每组测试用例,若无法删除全部边,输出一行 NO。
否则输出一行 YES,再输出 行。每行输出一条边的两个端点,所有行依次表示边的删除顺序。端点顺序任意。
样例输入
5
2
1 2
3
1 2
2 3
4
1 2
2 3
3 4
5
1 2
2 3
3 4
3 5
7
1 2
1 3
2 4
2 5
3 6
3 7
样例输出
YES
2 1
NO
YES
2 3
3 4
2 1
YES
3 5
2 3
2 1
4 3
NO
数据范围
,,。
输入保证每组图均为树,且所有测试用例中的 之和不超过 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | 每组 |
| 2 | 每个顶点的度数不超过 | |
| 3 | 每组 | |
| 4 | 40 | 无特殊限制 |