#P4431. Party【缺SPJ】

Party【缺SPJ】

题目描述

Arseny 喜欢组织派对并邀请他的朋友们参加。然而,不仅朋友来参加他的聚会,还有他朋友的朋友,他朋友的朋友的朋友等等。所以 Arseny 的有一部分客人可能不了解他。他决定使用以下程序解决此问题。

在每一步,他都选择了一位客人 A,成对地向 A 介绍了他的所有朋友。在完成这一步之后,他的任意两个朋友也会互相成为朋友。一直重复这个步骤到所有客人都互相为朋友为止。

Arseny 不想花太多时间去完成这件事,所以他想用最少的步骤完成这个过程。Arseny 需要你来帮帮她做到这一点。

大致题意:给你一堆一对对的关系,然后每一个关系对代表两个人认识。然后你每次可以选择一个人 ii,让 ii 认识的所有人都相互认识,即 ii 把介绍自己所有的朋友给其他人。然后现在问你最少需要选择多少个这样的 ii,使得所有的人都相互认识。

输入格式

第一行包含两个整数 nnmmnn 为派对上的客人人数(包括 Arseny),mm 为 Arseny 朋友的人数。

接下来 mm 行,每行包含两个整数 uuvv,代表 uuvv 在派对前就已经是朋友。保证每对朋友只会出现一次,并且友谊图表是相互关联的。

输出格式

在第一行输出所有的客人都成为朋友所需的最少步骤数。

在第二行输出每个步骤中选择的客人编号。

如果有多个解决方案,您可以输出任意一个解决方案。

5 6	
1 2	
1 3	
2 3	
2 5	
3 4	
4 5		
2	
2 3 	
4 4	
1 2	
1 3	
1 4	
3 4	
1	
1 	

在第一个样例中,没有客人是所有其他客人的朋友,因此至少需要执行两个步骤。第二位客人成对介绍他的所有朋友,只有一对客人 (4,1)(4,1)(4,2)(4,2) 不是朋友。客人 3355 可以介绍它们。

在第二个样例中,编号为 11 的客人是所有客人的朋友,所以他可以一步一步地介绍所有客人。

提示

1n22,0mn×(n1)/21\le n\le 22, 0\le m\le n\times (n-1)/21u;vn;uv1\le u; v\le n; u≠v