QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 256 MB Points totaux : 100

#376. 迭代连通分量

Statistiques

考虑以下在无向图中寻找连通分量的算法:

  • 对于每个顶点 $i$(顶点编号从 $1$ 到 $n$),定义 $c_i = i$。
  • 重复执行以下步骤:
    • 遍历图中的所有边 $(a, b)$,并令 $c_a = c_b = \min(c_a, c_b)$。
    • 如果上一轮对所有边的遍历没有改变任何 $c_i$ 的值,则停止算法。

不难发现,该算法在主循环最多执行 $n$ 次后会终止。然而,顶点的顺序和边的顺序是有影响的。给定一个图,你需要重新编号其顶点,并重新排列其边,使得该算法在主循环中执行的次数尽可能多。

输入格式

输入文件的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 100, 1 \le m \le 4950$),分别表示图中的顶点数和边数。接下来的 $m$ 行描述了这些边,每行包含两个整数 $a$ 和 $b$ ($1 \le a, b \le n, a \neq b$),表示由该边连接的两个顶点。任意一对顶点之间最多只有一条边,且没有边连接顶点自身。

输出格式

输出文件的第一行打印上述算法主循环的最大迭代次数。

输出文件的第二行打印 $n$ 个空格分隔的互不相同的整数(范围在 $1$ 到 $n$ 之间),描述你所选择的顶点顺序:第一个数应该是你声明为顶点 $1$ 的输入文件中的顶点编号,第二个数应该是你声明为顶点 $2$ 的输入文件中的顶点编号,以此类推。

输出文件的第三行打印 $m$ 个空格分隔的互不相同的整数(范围在 $1$ 到 $m$ 之间),描述你所选择的边顺序:第一个数应该是你声明为边 $1$ 的输入文件中的边编号,第二个数应该是你声明为边 $2$ 的输入文件中的边编号,以此类推。算法将按照你给出的顺序遍历这些边。

如果有多种方案能达到最大迭代次数,输出任意一种即可。

样例

输入 1

3 2
1 2
1 3

输出 1

3
2 1 3
2 1

说明

在样例中,我们将旧的顶点编号 $2$ 重新编号为 $1$,旧的顶点编号 $1$ 重新编号为 $2$,并将旧的顶点编号 $3$ 保持为 $3$。此时我们的边连接了顶点 $1$ 与顶点 $2$,以及顶点 $2$ 与顶点 $3$,并且我们在第一条边之前处理第二条边。

我们从以下 $c_i$ 的值开始:$1, 2, 3$。

在主循环的第一次迭代中,我们首先处理连接顶点 $2$ 和顶点 $3$ 的边,此时 $c_i$ 变为 $1, 2, 2$;然后我们处理连接顶点 $1$ 和顶点 $2$ 的边,此时 $c_i$ 变为 $1, 1, 2$。

在主循环的第二次迭代中,我们首先处理连接顶点 $2$ 和顶点 $3$ 的边,此时 $c_i$ 变为 $1, 1, 1$;然后我们处理连接顶点 $1$ 和顶点 $2$ 的边,此时 $c_i$ 保持为 $1, 1, 1$。

在主循环的第三次迭代中,没有任何值发生改变,算法停止。

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.