#P6998. [NEERC 2013] Cactus Automorphisms

[NEERC 2013] Cactus Automorphisms

Description

NEERC 在前几年中曾出现过一些关于仙人掌图的问题——仙人掌图是一个连通的无向图,其中每条边最多属于一个简单环。从直观上看,仙人掌图是树的一种推广,其中允许存在一些环。

在 2005 年,首次出现关于仙人掌图的问题时,问题被简单地称为“Cactus”。在 2007 年,它被称为“Cactus Reloaded”,而在 2010 年,它被称为“Cactus Revolution”。下图展示了 NEERC 2007 年问题中的一个仙人掌图示例。

在为这些问题准备测试用例时,评委面临的挑战是,一些错误的解决方案可能依赖于输入文件中顶点的编号。因此,对于最有趣的测试用例,评委通常会包含几个具有相同图但顶点编号不同的输入。然而,有些图是如此规则,以至于即使重新编号其顶点,图仍保持不变。评委需要一些关于图的度量来判断给定图的规则性,以便对需要为该图创建的测试用例数量做出客观决定。

你需要计算的度量是图的自同构数量。给定一个无向图 (V,E)(V , E),其中 VV 是顶点集,EE 是边集,每条边是由两个不同顶点组成的集合 {v1,v2}(v1,v2V)\{v_{1}, v_{2}\} (v_{1}, v_{2} \in V),图的自同构是一个从 VVVV 的双射 mm,使得对于每对由边连接的顶点 v1v_{1}v2v_{2}(即 {v1,v2}E\{v_{1}, v_{2}\} \in E),以下条件成立:{m(v1),m(v2)}E\{m(v_{1}), m(v_{2})\} \in E

每个图至少有一个自同构(当 mm 是恒等函数时),对于具有 nn 个顶点的图,最多可能有 n!n! 个自同构。由于自同构的数量可能是一个非常大的数字,答案必须以素因数分解的形式呈现 i=1kpiqi\prod^{k}_{i=1} p_{i}^{q_{i}},其中 pip_{i} 是按升序排列的素数 (pi2,qi>0)(p_{i} \ge 2, q_{i} > 0)

Input Format

输入文件的第一行包含两个整数 nnm(1n50000,0m50000)m (1 \le n \le 50 000, 0 \le m \le 50 000)。这里 nn 是图中的顶点数。顶点从 11nn 编号。图的边由一组边不重复的路径表示,其中 mm 是这样的路径数。

接下来的 mm 行中的每一行包含图中的一条路径。路径以一个整数 ki(2ki1000)k_{i} (2 \le k_{i} \le 1000) 开头,后跟 kik_{i} 个从 11nn 的整数。这些 kik_{i} 个整数表示路径的顶点。路径中的相邻顶点是不同的。路径可以多次经过同一顶点,但整个输入文件中每条边恰好被遍历一次。图中没有重边(任意两个顶点之间最多有一条边)。

输入文件中的图是一个仙人掌图。

Output Format

在输出文件的第一行写入数字 kk——图自同构数量的素因数分解中的素因子数量。如果图自同构的数量是 11,则写入 00。在接下来的 kk 行中写入素数 pip_{i} 及其幂 qiq_i,用空格分隔。素数必须按升序给出。

15 3
9 1 2 3 4 5 6 7 8 3
7 2 9 10 11 12 13 10
5 2 14 9 15 10

1
2 2

2 1
2 1 2

1
2 1

15 7
3 1 2 3
3 4 2 5
3 6 2 7
3 8 2 9
3 10 2 11
3 12 2 13
3 14 2 15

6
2 11
3 5
5 2
7 2
11 1
13 1

Hint

时间限制:5 秒,内存限制:256 MB。

题面翻译由 ChatGPT-4o 提供。