#P14861. [ICPC 2021 Yokohama R] "Even" Division
[ICPC 2021 Yokohama R] "Even" Division
Description
如果你谈论通常意义上的“偶数划分”,它意味着将事物等分。今天,你需要思考一些不同的东西。一个图需要被划分成子图,且每个子图的节点数为偶数,即二的倍数。
你被给予一个具有偶数个节点的无向连通图。给定的图将被划分为子图,使得所有子图都是连通的且具有偶数个节点,直到无法再进行这样的划分为止。图 1.1 展示了一个例子。原始的 8 个节点的图被划分为具有 4、2 和 2 个节点的子图。所有这些子图都具有偶数个节点。
:::align{center}

图 I.1. 一个划分示例(样例输入/输出 1) :::
用数学术语来说,一个图的 偶数划分 是图节点子集 的集合,满足以下条件:
- 是输入图的所有节点的集合,且若 ,则 。
- 每个 非空,且具有偶数个元素。
- 每个 导出一个连通的子图。换句话说, 中的任意节点都可以通过仅使用输入图中连接 中两个节点的边相互可达。
- 不存在进一步的划分。对于任意 ,用两个集合 和 替换 得到的划分不满足条件 1、2 或 3 中的任意一条。
你的任务是找到给定图的一个 偶数划分。
Input Format
输入由单个测试用例组成,格式如下。
$$\begin{aligned} &n\ m \\ &x_1\ y_1 \\ &\vdots \\ &x_m\ y_m \end{aligned}$$第一行包含两个整数 和 。第一个整数 () 是一个偶数,表示要划分的图的节点数。第二个整数 () 是图的边数。
图的节点编号从 到 。
随后的 行表示图的边。一行 () 意味着存在一条连接节点 和 的边。没有重复的边。保证输入图是连通的。
Output Format
如果存在给定图的节点集到子集 的 偶数划分,则在输出的第一行打印 。接下来的 行应描述子集 。子集的顺序无关紧要。其中第 行应以 的大小开头,后跟 中元素的节点编号,用一个空格分隔。节点编号的顺序也无关紧要。
如果有多个偶数划分,其中任意一个都可以接受。
8 9
0 1
1 2
2 3
0 4
1 6
3 7
4 5
5 6
6 7
3
2 3 7
2 4 5
4 0 1 2 6
2 1
0 1
1
2 0 1
Hint
在样例 2 中,原始图节点集的单元素集合本身已经是一个偶数划分。
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号