Codeforces Round 783 (Div. 1)
D
Edge Elimination
Codeforces
2900
原题
← CE →
翻译中…

You are given a tree (connected, undirected, acyclic graph) with $n$ vertices. Two edges are adjacent if they share exactly one endpoint. In one move you can remove an arbitrary edge, if that edge is adjacent to an even number of remaining edges.

翻译中…

Remove all of the edges, or determine that it is impossible. If there are multiple solutions, print any.

翻译中…

Input

翻译中…

The input consists of multiple test cases. The first line contains a single integer $t$ ($1 \le t \le 10^5$) — the number of test cases. The description of the test cases follows.

翻译中…

The first line of each test case contains a single integer $n$ ($2 \le n \le 2 \cdot 10^5$) — the number of vertices in the tree.

翻译中…

Then $n-1$ lines follow. The $i$-th of them contains two integers $u_i$, $v_i$ ($1 \le u_i,v_i \le n$) the endpoints of the $i$-th edge. It is guaranteed that the given graph is a tree.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.

翻译中…

Output

翻译中…

For each test case print "NO" if it is impossible to remove all the edges.

翻译中…

Otherwise print "YES", and in the next $n-1$ lines print a possible order of the removed edges. For each edge, print its endpoints in any order.

翻译中…

Note

翻译中…

Test case $1$: it is possible to remove the edge, because it is not adjacent to any other edge.

翻译中…

Test case $2$: both edges are adjacent to exactly one edge, so it is impossible to remove any of them. So the answer is "NO".

翻译中…

Test case $3$: the edge $2-3$ is adjacent to two other edges. So it is possible to remove it. After that removal it is possible to remove the remaining edges too.

翻译中…

样例

Input #1
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
Output #1
YES
2 1
NO
YES
2 3
3 4
2 1
YES
3 5
2 3
2 1
4 3
NO
InputCopy OutputCopy
题目信息
题号
1667D
时间限制
2 s
内存限制
256 MB
标签
构造
DFS 及类似
动态规划
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。