#774. 奇怪住房(house)

奇怪住房(house)

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:house.in

输出:house.out

题目描述

nn 个房子,它们之间由 mm 条地下通道连接。现在要选择一些房子供老师居住。

出于安全考虑,必须满足以下条件:

  1. 如果两个房子都没有老师居住,则它们之间的通道将被关闭。其余通道保持开通。
  2. 在开通的通道下,任意两个房子之间必须能够相互到达(整张图连通)。
  3. 老师不能住在由通道直接相连的两个房子中。

请帮助组织者选择哪些房子安排老师居住,以满足所有安全要求;如果不可能,请报告无解。

输入格式

第一行一个整数 tt,表示测试用例组数。(1t1051\le t\le 10^5)

每组测试数据格式如下:

第一行两个整数 n,mn,m (2n3×1052\le n\le 3\times 10^5, 0m3×1050\le m\le 3\times 10^5)

接下来 mm 行,每行两个整数 u,vu,v (1u,vn1\le u,v\le n, uvu\neq v),表示一条通道。

保证所有测试用例的 nn 之和不超过 3×1053\times 10^5mm 之和不超过 3×1053\times 10^5

输出格式

对每组测试数据:

若没有方案,输出一行 NO

否则第一行输出 YES,第二行输出选择的房子数 kk,第三行输出 kk 个整数表示被选中的房子编号(任意顺序)。

输入输出样例

2
3 2
3 2
2 1
4 2
1 4
2 3
YES
2
1 3
NO