CF1470D Strange Housing

题目描述

冬季信息学学校的学生们将住在一组通过地下通道连接的房屋中。老师们也将住在其中一些房屋里,但他们不能随意安置。出于安全原因,必须满足以下条件: - 如果两个房屋中都没有老师,则它们之间的所有通道都将关闭。其他通道保持开放。 - 必须能够通过开放的地下通道,从任意一个房屋到达另一个房屋。 - 老师们不能住在通过通道直接相连的房屋中。 请帮助组织者选择老师们居住的房屋,以满足安全要求,或者判断是否无法满足。

输入格式

第一行输入一个整数 $t$,表示测试用例的数量($1 \le t \le 10^5$)。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($2 \le n \le 3 \cdot 10^5$,$0 \le m \le 3 \cdot 10^5$),分别表示房屋的数量和通道的数量。 接下来的 $m$ 行,每行包含两个整数 $u$ 和 $v$($1 \le u, v \le n$,$u \neq v$),表示房屋 $u$ 和房屋 $v$ 之间有一条通道。保证没有两条通道连接同一对房屋。 所有测试用例中 $n$ 的总和不超过 $3 \cdot 10^5$,$m$ 的总和不超过 $3 \cdot 10^5$。

输出格式

对于每个测试用例,如果无法选择满足条件的房屋集合,输出 "NO"。否则,输出 "YES",然后输出选择的房屋总数,接着输出这些房屋的编号,顺序任意。

说明/提示

下图展示了第二个样例测试。 ![](https://espresso.codeforces.com/a897ddb7078dd022b869fc31de83d3960c42a931.png) 由 ChatGPT 4.1 翻译