CF2150F Cycle Closing

题目描述

[Kubbi - The Cairn](https://soundcloud.com/kubbi/the-cairn) ⠀ 给定一个无向连通图 $G$,包含 $n$ 个节点和 $m$ 条边。图中不存在自环和重边。 每次操作,你需要按如下顺序进行: - 选择一个正整数 $k$($1 \le k \le n$); - 选择一个整数 $s$($0 \le s \le \frac{n \cdot (n - 1)}{2}$); - 输出 $s$ 条长度为 $k-1$ 的简单路径($v_{i,1} \leftrightarrow v_{i,2} \leftrightarrow \ldots \leftrightarrow v_{i,k}$); - 对于每个 $i = 1$ 到 $s$,在图中加入一条新边 $(v_{i,1}, v_{i,k})$。 注意,操作中新加的边只能在之后的操作中使用,因为是等所有路径都输出后才添加这些边。 请在至多 $2$ 次操作内,使图 $G$ 变为完全图。即,图中每对 $u < v$ 的节点 $(u, v)$ 都恰好有一条边。 注意:本题提供了前 $10$ 个测试点的输入文件和 $2$ 个检查器(C++ 和 Python 版本),用于校验你的输出。你可以在比赛资料包中下载这些文件。

输入格式

每个测试包含多个测试用例。第一行为测试用例数 $t$($1 \le t \le 10^3$)。接下来是各个测试用例。 每个测试用例第一行包含两个整数 $n$ 和 $m$($3 \leq n \leq 200$,$n - 1\leq m \leq \frac{n(n-1)}{2}$),表示图中节点数和边数。 接下来 $m$ 行,每行两个整数 $u_i$,$v_i$($1 \leq u_i, v_i \leq n$,$u_i \neq v_i$),表示一条边 $(u_i, v_i)$。图保证连通,且不存在自环和重边。 保证所有测试用例中 $\sum n^2 \leq 4 \cdot 10^4$。

输出格式

对于每个测试用例,输出如下内容。 第一行,输出操作次数 $op$($0 \le op \le 2$)。对每次操作: - 第一行输出本次操作选择的 $k$($1 \le k \le n$); - 第二行输出简单路径数 $s$($0 \le s \le \frac{n \cdot (n - 1)}{2}$); - 接下来 $s$ 行,每行 $k$ 个正整数,表示一条简单路径 $v_{i,1} \leftrightarrow v_{i,2} \leftrightarrow \ldots \leftrightarrow v_{i,k}$。

说明/提示

以下是第一个测试用例的解释: |输出内容|说明| |:---|:---| |$\texttt{2}$|要进行的操作次数($=2$)。| |$\texttt{3}$|第一次操作,选择 $k=3$(路径长度为 $2$)。| |$\texttt{1}$|本次操作输出 $s=1$ 条简单路径。| |$\texttt{2 1 3}$|该路径为 $2\to1\to3$,操作结束后将加入边 $(2,3)$。| |$\texttt{4}$|第二次操作,选择 $k=4$(路径长度为 $3$)。| |$\texttt{2}$|本次操作输出 $s=2$ 条简单路径。| |$\texttt{4 1 2 3}$|第一条路径,操作结束后加入边 $(3,4)$。| |$\texttt{4 1 3 2}$|第二条路径,操作结束后加入边 $(2,4)$。| | |注意不能输出 $\texttt{4 3 1 2}$,因 $(3,4)$ 这条新加的边只有在本次操作全部结束后才会存在。| 由 ChatGPT 5 翻译