题目描述
给定一张有 N 个顶点(编号 1 到 N)和 M 条边的简单连通无向图。第 i 条边连接顶点 ai 和 bi。
请判断是否存在一个由奇数个顶点构成的环,如果存在,找出一个这样的环。
形式化地说,请判断是否存在满足以下所有条件的整数序列 (v1,v2,…,vK),如果存在,找出一个这样的序列。
- K 是不小于 3 的奇数。
- v1,v2,…,vK 互不相同。
- 对于每个满足 1≤i≤K 的整数 i,顶点 vi 与 vi+1 之间有边相连,其中 vK+1=v1。
给定 T 组测试数据,请分别求解每组数据。
输入格式
输入以以下格式从标准输入给出:
- T
- case1
- case2
- ⋮
- caseT
每组测试数据以以下格式给出:
- N M
- a1 b1
- a2 b2
- ⋮
- aM bM
输出格式
对于每组测试数据,如果不存在满足条件的序列,输出 -1。如果存在,按以下格式输出一个这样的序列:
- K
- v1 v2 … vK
如果有多个序列满足条件,输出任意一个均可。
数据范围
- 1≤T≤2×105
- 1≤N,M≤2×105
- 所有测试数据中 N 的总和不超过 2×105。
- 所有测试数据中 M 的总和不超过 2×105。
- 1≤ai,bi≤N
- ai=bi
- 给定的图是简单连通无向图。
- 输入中的所有值均为整数。
4
3 3
1 2
2 3
1 3
7 7
1 2
2 3
3 4
1 4
4 5
5 6
6 7
5 5
1 2
2 3
3 4
4 5
1 5
9 10
1 2
2 3
3 4
4 5
1 5
6 7
7 8
8 9
6 9
1 6
3
2 1 3
-1
5
3 2 1 5 4
5
3 2 1 5 4
在第一组测试数据中,序列 (2,1,3) 满足条件:边 (2,1),(1,3),(3,2) 都存在。输出 v=(2,3,1) 等也会被接受。
在第二组测试数据中,不存在由奇数个顶点构成的环,因此没有序列满足条件。
子任务设置
- 子任务 1(30%):N,M≤2000,且各测试点中 N、M 的总和同样不超过 2000。
- 子任务 2(30%):图是一棵树(M=N−1,答案恒为
-1)。
- 子任务 3(40%):无特殊限制。