#CF1381D. 庄严的棕树蛇

庄严的棕树蛇

庄严的棕树蛇

  • 时间限制:1 秒
  • 内存限制:256 MiB

题目描述

有一棵包含 nn 个顶点的无向树。一条蛇的头位于顶点 aa,尾位于顶点 bb,身体占据 aa 到 bb 的唯一简单路径上的全部顶点。

蛇希望反转自身,即最终让头到达最初的 bb,尾到达最初的 aa。

一次操作可以选择以下两种方式之一:

  • 把头移动到一个与当前头相邻、且未被蛇占据的顶点;同时尾沿当前身体路径向头移动一个顶点,以保持蛇的长度不变;
  • 对称地,把尾移动到一个相邻且未被占据的顶点;同时头沿当前身体路径向尾移动一个顶点。

题目插图

上图中的蛇可以按 $(4,7)\to(5,1)\to(4,2)\to(1,3)\to(7,2)\to(8,1)\to(7,4)$ 完成反转。

请判断蛇能否通过若干次操作完成反转。

输入格式

第一行包含整数 tt,表示测试数据组数。

每组数据第一行包含三个整数 n,a,bn,a,b。

接下来 n−1n-1 行,每行包含两个整数 ui,viu_i,v_i,表示树边 (ui,vi)(u_i,v_i)。

输出格式

对每组测试数据,如果可以反转,输出 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≤t≤1001\le t\le100;
  • 2≤n≤1052\le n\le10^5,1≤a,b≤n1\le a,b\le n,a≠ba\ne b;
  • 输入的 n−1n-1 条边构成一棵树;
  • 所有测试数据中 nn 的总和不超过 10510^5。

令 LL 为 aa 到 bb 的距离。若删除顶点 vv 后,至少三个连通分量中分别存在一个到 vv 的距离不小于 LL 的顶点,则称 vv 为一个枢纽。

子任务编号 分值 特殊限制
1 20 所有测试数据中 nn 的总和不超过 99
2 对每组数据均有 L=1L=1
3 对每组数据均有 L≥2L\ge2,且树中不存在枢纽,或至少一个枢纽位于 aa 到 bb 的路径上
4 40 无特殊限制