#CF1381D. 庄严的棕树蛇
庄严的棕树蛇
庄严的棕树蛇
- 时间限制:1 秒
- 内存限制:256 MiB
题目描述
有一棵包含 个顶点的无向树。一条蛇的头位于顶点 ,尾位于顶点 ,身体占据 到 的唯一简单路径上的全部顶点。
蛇希望反转自身,即最终让头到达最初的 ,尾到达最初的 。
一次操作可以选择以下两种方式之一:
- 把头移动到一个与当前头相邻、且未被蛇占据的顶点;同时尾沿当前身体路径向头移动一个顶点,以保持蛇的长度不变;
- 对称地,把尾移动到一个相邻且未被占据的顶点;同时头沿当前身体路径向尾移动一个顶点。

上图中的蛇可以按 $(4,7)\to(5,1)\to(4,2)\to(1,3)\to(7,2)\to(8,1)\to(7,4)$ 完成反转。
请判断蛇能否通过若干次操作完成反转。
输入格式
第一行包含整数 ,表示测试数据组数。
每组数据第一行包含三个整数 。
接下来 行,每行包含两个整数 ,表示树边 。
输出格式
对每组测试数据,如果可以反转,输出 YES;否则输出 NO。
样例输入 1
4
8 4 7
1 2
2 3
1 4
4 5
4 6
1 7
7 8
4 3 2
4 3
1 2
2 3
9 3 5
1 2
2 3
3 4
1 5
5 6
6 7
1 8
8 9
16 15 12
1 2
2 3
1 4
4 5
5 6
6 7
4 8
8 9
8 10
10 11
11 12
11 13
13 14
10 15
15 16
样例输出 1
YES
NO
NO
YES
数据范围
- ;
- ,,;
- 输入的 条边构成一棵树;
- 所有测试数据中 的总和不超过 。
令 为 到 的距离。若删除顶点 后,至少三个连通分量中分别存在一个到 的距离不小于 的顶点,则称 为一个枢纽。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | 所有测试数据中 的总和不超过 |
| 2 | 对每组数据均有 | |
| 3 | 对每组数据均有 ,且树中不存在枢纽,或至少一个枢纽位于 到 的路径上 | |
| 4 | 40 | 无特殊限制 |