P10007
P1007 欧拉迹
Description
给出一个 \(n\) 个点,\(m\) 条边的无向图,你需要判断它是否含有欧拉迹,若含有,则输出一条欧拉迹。
注意:欧拉迹仅要求所有边遍历一次,允许孤点不被遍历。
Format
Input
本题有共有 \(T\) 组数据,第一行输入整数 \(T\),对于每组数据,输入格式为:
第一行输入两个正整数 \(n,m\)。
接下来 \(m\) 行每行输入两个正整数 \(x,y\) 表示 \(x\) 到 \(y\) 有一条无向边。
本题共有 \(3\) 个测试点包。
对于测试点包 \(1\),满足 \(n\le 10,m\le 20,T\le 10\)。
对于测试点包 \(2\),满足 \(n\le 1000,m\le 2000,T\le 10\)。
对于全部测试点,保证 \(n\le 5\times 10^5,m\le 2\times n,1\le \sum n\le 10^6,1\le \sum m\le 2\times 10^6\).
保证所有操作满足题目描述,保证每一行的两个相邻整数都仅用一个空格隔开。
Output
对于每组数据,如果不含欧拉迹,输出一行 "No"。否则第一行输出 "Yes",第二行输出 \(l\) 表示欧拉迹上的顶点个数,第三行输出 \(l\) 个整数,表示欧拉迹上的顶点,你需要保证相邻的顶点间存在连边,且每条边出现且仅出现一次。若干存在多个解,输出任意一个即可。
Samples
Sample Input 1
4
5 6
1 2
2 3
3 4
4 5
5 1
3 5
5 9
1 2
2 1
2 3
3 5
2 5
2 5
2 4
1 4
1 5
4 3
1 2
1 3
1 4
3 2
1 2
2 1
Sample Output 1
Yes
7
3 5 1 2 3 4 5
Yes
10
1 5 2 4 1 2 5 3 2 1
No
Yes
3
1 2 1