QOJ.ac

QOJ

حد الوقت: 30.0 s حد الذاكرة: 256 MB مجموع النقاط: 100

#17515. 杰克的袜子

الإحصائيات

杰克是一位科学家。正如你可能意识到的那样,这意味着他不太关注自己日常的穿着。他也是一个男人,这意味着他知道的颜色名称不超过六种,分不清本白色(ecru)和白色,并且只把梅红色(plum)与水果联系在一起。但今天他要出发去参加一个会议。他刚刚从洗衣机里拿出一堆单只的袜子,必须将它们配对。他能说出哪只袜子和哪只袜子相似,并且他只能将看起来相似的袜子配对。然而,许多袜子都与许多其他袜子相似。更糟糕的是,相似关系并不一定具有传递性。例如,对杰克来说,蓝色看起来与海绿色相似,海绿色与绿色相似,但杰克能区分蓝色和绿色,并认为它们不相似。

杰克想知道是否恰好只有一种方法可以将他的所有袜子配对。请通过编写一个合适的程序来帮助他。不用担心:他虽然可能是个科学家,但他不会穿着袜子配凉鞋。

输入格式

输入包含多组测试数据。输入的第一行包含一个正整数 $Z \le 50$,表示测试数据的组数。接下来是 $Z$ 组测试数据。

每组测试数据的第一行包含两个由单个空格分隔的整数 $n$ 和 $m$,其中 $1 \le n \le 1000$ 且 $0 \le m \le 10000$。$n$ 为偶数,表示袜子的数量;它们从 $1$ 到 $n$ 进行编号。

接下来的 $m$ 行,每行包含两个由单个空格分隔的数字 $a_i \neq b_i$,表示袜子 $a_i$ 和 $b_i$ 相似。每个相似对恰好出现一次,即如果出现了 $(a_i, b_i)$,那么在此后的列表中既不会出现 $(a_i, b_i)$,也不会出现 $(b_i, a_i)$。

输出格式

对于每组测试数据,你的程序应该检查是否存在恰好一种将所有这些袜子配对的方法。

如果不是,则输出一行 NO

否则,应在第一行输出 YES,随后输出 $n/2$ 行,每行包含一对配对的袜子,两数之间用单个空格分隔。

配对的输出应按排序后的顺序排列,即对于每对 $(c, d)$,应满足 $c < d$;且对于任意两个相邻的配对 $(c, d)$ 和 $(e, f)$,应满足 $c < e$。

样例

输入样例 1

2
4 4
1 2
2 3
3 4
4 1
4 3
1 2
2 3
3 4

输出样例 1

NO
YES
1 2
3 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.