先简单介绍一下置换群和burnside引理
置换群
群
满足如下性质:
1. 封闭性
2. 结合性
3. 单位元
4. 逆元
置换群
置换群
满足群的所有性质,
中的元素:置换。
置换可表示为如下形式:其中,
为1到n的排列。
定义置换
的乘法运算:
burnside引理
可将任一置换
分解为若干不相交的循环的乘积。
接下来提到的置换,默认将置换
分解为若干不相交的循环的乘积。
共轭类
如
将一个循环的长度称为一个循环的阶,
阶循环出现
次,用
表示。如
.
中具有相同格式的置换全体构成一个共轭类。
中属于
共轭类的元素个数:
不动置换类
设置换群
。
中使
保持不变的置换全体,称为
不动置换类,记做
.
等价类
定义关系
,则称
.
如果满足:
(自反性)
(对称性)
(传递性)
则称
是
上的一个等价关系。
置换群
将
划分成了若干等价类,元素
所属的等价类记为
。
结论:
burnside引理:
设
是置换
中不动点(长度为1的循环)的个数,则
中不同等价类的个数:
进入正题
Polya定理
设
是n个对象的一个置换群,记
为置换
的循环节数, 用m种颜色染这n个对象,则不同的染色方案数为:
所以,计数时只需统计当循环节数为
时,对应置换有多少个即可。
假设当循环节数为
时,对应置换有
个,则不同的染色方案数为:
当然,如果这并不是一个单纯的染色,可能涉及到一些限制时,你可以将
替代为在置换
下染色的方案数
,由于不同循环间相互独立,而同一循环中的元素染色相同,所以
等于每一个循环的染色方案数的乘积。
UVA 11540 Sultan’s Chandelier 原题链接
UVA 11540 Sultan’s Chandelier 题解
推广1:母函数形式的Polya定理
如果我们已经确定了m种颜色的状态(某种颜色i染k[i]个对象),要求在这种状态下的方案数,就要用到母函数形式的Polya定理。
接下来我们用
表示颜色
,对于某一个置换
,
为置换
的循环节数,
为置换
中长度为
的循环的数目。
将
用
形式代替形成以
为变元的
次对称多项式
。
在置换
下,颜色状态为
方案数即为多项式
展开后项
的系数。
那么,该颜色状态的方案数即为置换群
中所有置换对应的多项式展开后项
的系数之和。
这样说似乎有些抽象,具体实现过程可以看这里
UVA 10601 Cubes 原题链接
UVA 10601 Cubes 题解
推广2:图的计数
简单图的计数相当于对有
个无标志顶点的完全图用两种颜色进行着色的不同方案数。
首先,考虑点置换与边置换的关系:
一条边连接了两个点,那么对于这两个点,考虑他们在某个置换中的位置:
若这两个点在同一个循环中,那么边的循环的个数为点的循环的个数的一半。
若这两个点不在一个循环中,那么边的循环的个数为
为这两个点所在的点循环的长度。(可以画个图,看一看就知道了)
好吧,我还是,画一画吧。水平有限,应该勉强能看吧。
其次,考虑如何找出所有的置换:
如果
比较小,可以暴力枚举,时间为
(点的全排列)
比较大的时候,由于属于同一共轭类的置换对答案的贡献是相同的,所以考虑枚举一个共轭类,求出这个形式的置换的着色方案数,再乘以该形式的置换的数目,即
为长度是
的循环的个数).
现在已经确定了一种点的置换的形式,那么对应的边的着色方案数如上文所说,考虑两个点是否在同一置换中即可。
例题:BZOJ 1488 图的同构
BZOJ 1488 图的同构 题解
一些题目:
比较模板的题:
The Colored Cubes UVA 10733:立方体涂色问题,基础模板,不解释。
Necklace of Beads POJ 1286:用三种颜色图一串项链的方案数。
考虑旋转和翻转,旋转就枚举旋转的长度i=1~n,循环数目就是
,翻转要分成两种情况:
n为偶数:选择一颗珠子,以这颗珠子到项链圆心的连线为轴翻转,置换的数目是n/2(显然,这根轴还穿过了另一颗珠子,所以是n/2),置换中循环的数目是n/2+1(两个不动置换和n/2-1个2阶置换)。或选择相邻的两颗珠子,以他们的中点到项链圆心的连线为轴翻转,置换的数目是n/2,置换中循环(2阶循环)的数目是n/2。
n为奇数:选择一颗珠子,以这颗珠子到项链圆心的连线为轴翻转,置换的数目是n,置换中循环的数目是(n+1)/2。
无论n为奇数还是偶数,所有置换的数目都是2n。
The Queen’s New Necklaces UESTC 75:用ki个颜色为i的珠子能串成多少不同的项链。
母函数形式的Polya定理,求出系数和即可。
Count the Tetris HDU 1812:用C种颜色染n*n的棋盘的方案数。
考虑旋转0度,90度,180度,270度,这道题比较困难的是要写高精度。
变式:
Magic Bracelet POJ 2888:用m种颜色染一个n颗珠子的手镯(只旋转,不翻转)的方案数,但是有限制,要求某两种颜色不能相邻。
如果没有限制,这道题就是个板题了,然而~~。
如果不旋转,这道题就等价于:在一个有m点的图中(一个点代表一个颜色),求从任意点开始,走n步再回到起点的方案数。图上不能相邻的两种颜色之间没有边。
由于m比较小,n比较大,所以用矩阵快速幂可以解决这个简化的问题。
现在考虑旋转:当旋转的长度为i时,循环数目就是gcd(i,n),这样的置换是唯一的,但我们可以发现不同的gcd(i,n)最多只有
个。所以我们不妨枚举gcd(i,n),即
枚举n的因子,符合gcd(i,n)=k (i≤n) 的 i 显然有
个,即循环的数目为k的置换有
个。
所以,答案加上为走k步回到起点的方案数乘
,最后答案再除以n(有n个置换)