QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 512 MB Points totaux : 110

#15387. 宴会

Statistiques

Mr. Malnar 正在为他的 $2N$ 个合作伙伴举办一场宴会,这些合作伙伴被编号为 $1, 2, \dots, 2N$。合作伙伴们是成对来到宴会的。通过观察他们的行为,Mr. Malnar 注意到了一些支配该群体中信息传播的奇怪规则。

  • 第一,当且仅当 A 和 B 是朋友时,A 愿意与 B 分享信息。成对来到宴会的两个合作伙伴是朋友。
  • 第二,每个人最多愿意将信息分享给一个其他人。同时,该人此前必须不知道这个信息。
  • 第三,每个人在尝试分享信息时,会优先分享给与他一同来到宴会的伙伴。 换句话说,如果 A 与 B 一同来到宴会,且 A 知道了某条信息而 B 还不知道,那么 A 会将该信息分享给 B。根据前述规则,A 将不会再把该信息分享给其他任何人,而 B 则会尝试将其分享给他的另一个朋友,以此类推。
  • 第四,该群体可以被划分为两个子集,使得如果两个人是朋友,他们不在同一个子集中。

Mr. Malnar 将把他的故事告诉其中一位合作伙伴,他想知道最多能有多少个合作伙伴听到他的故事。如果这个最大数量为 $K$,他还想知道一个合作伙伴序列 $a_1, a_2, \dots, a_K$,使得如果他把故事告诉 $a_1$,那么对于每个 $i = 1, 2, \dots, K - 1$,合作伙伴 $a_i$ 都可以将故事告诉 $a_{i+1}$。

在发现上述规则的过程中,Mr. Malnar 确定了所有的朋友关系,但忘记了哪些合作伙伴是成对来到宴会的。幸运的是,这些信息是可以恢复的。换句话说,存在唯一的将合作伙伴划分为 $N$ 个配对的方法,使得同一配对中的合作伙伴是朋友。

你能帮助 Mr. Malnar 回答他的问题吗?

输入格式

第一行包含两个整数 $N$ 和 $M$($1 \le N \le 5 \cdot 10^5$,$N \le M \le 10^6$),分别表示来到宴会的合作伙伴配对数和朋友关系的数量。

接下来的 $M$ 行,每行包含两个整数 $u_i$ 和 $v_i$($1 \le u_i, v_i \le 2 \cdot N$),表示编号为 $u_i$ 和 $v_i$ 的合作伙伴是朋友。

输出格式

第一行输出一个整数 $K$ — 能够听到 Mr. Malnar 故事的最大合作伙伴数量。

第二行输出一个包含 $K$ 个整数的序列,表示满足约束条件的合作伙伴序列。

子任务

子任务 分值 约束条件
1 24 $N \le 10$
2 16 每个合作伙伴最多与另外两个合作伙伴是朋友。
3 30 $N \le 2000, M \le 5000$
4 40 无附加限制。

样例

输入样例 1

2 3
1 2
1 4
3 4

输出样例 1

4
2 1 4 3

输入样例 2

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

输出样例 2

4
6 1 2 3

输入样例 3

4 8
1 2
2 3
3 4
4 1
2 5
3 6
4 7
7 8

输出样例 3

6
6 3 4 1 2 5

说明

样例 1 说明

一同来到宴会的配对为:1 和 2,3 和 4。

样例 2 说明

一同来到宴会的配对为:1 和 6,2 和 3,4 和 5。更长的序列不满足约束条件。例如,序列 $(3, 2, 1, 4, 5)$ 虽然每两个相邻的合作伙伴都是朋友,但不满足约束条件,因为合作伙伴 1 在从合作伙伴 2 处听到故事后,不能将故事告诉 4。这是因为与 1 一同来到宴会的合作伙伴(即 6)此时还不知道这个故事(第三条规则)。

样例 3 说明

一同来到宴会的配对为:1 和 4,2 和 5,3 和 6,7 和 8。

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.