# 置换
定义
有限集合到自身的双射(即一一对应)称为置换。集合 S={a1,a2,⋯,an} 的置换可以表示为:
f=(a1,a2,⋯,anap1,ap2,⋯,apn)
p1,p2,⋯,pn 为一个 1∼n 的排列,显然置换个数为 n!。
置换的乘法
置换的乘法是置换的叠加,如对于置换 f=(a1,a2,⋯,anap1,ap2,⋯,apn) 和 g=(ap1,ap2,⋯,apnaq1,aq2,⋯,aqn),置换的乘积 f∘g 为:
f∘g=(a1,a2,⋯,anaq1,aq2,⋯,aqn)
# 置换群
集合 S 的所有置换构成一个群,这个群的任意子群称为置换群。
置换群中的元素是置换。
# 轨道 - 稳定化子定理
(这个定理是为了证明 Burnside’s 引理,所以不看也没关系 /kk)
设 G 为置换群,X 为一种操作所有方案的集合(看不懂的话下面有例子)。
对于 ∀x∈X,G(x)={f(x)∣f∈G} 称为 x 的轨道,Gx={f∣f(x)=x,f∈G} 称为 x 的稳定化子。
轨道 - 稳定化子定理: ∣G(x)∣∣Gx∣=∣G∣
(对于置换 f,满足 f(x)=x 的元素称为该置换的不动点。)
# Burnside 引理
设 G 是集合 X 上的置换群,c(f) 为置换 f 的不动点个数,若 G 把集合 X 分为了 L 个等价类,则有:
L=∣G∣1f∈G∑c(f)
证明:
若集合中一个元素 x 的轨道大小为 ∣G(x)∣,那么有 ∣G(x)∣ 个元素的轨道都相同,每个元素的贡献为 G(x)1。
L===x∈X∑∣G(x)∣1∣G∣1x∈X∑∣Gx∣∣G∣1f∈G∑c(f)
例子:
一个 4 个点的环,染黑白两种颜色,循环同构,求本质不同方案数。
集合 X:不考虑重复的染色方案,共有 24 种。
不动点:旋转之后四个点的颜色与旋转之前一样,这样的染色方案叫做不动点。
置换群:置换群大小为 4,有 f0,f1,f2,f3 4 种置换,fi 表示旋转 i 次。
L:即为本质不同染色方案数。
L====∣G∣1f∈G∑c(f)∣G∣1(c(f0)+c(f1)+c(f2)+c(f3))41(16+2+4+2)6
# Pólya 定理
Poˊlya 定理提供了在特殊情况下计算不动点个数的方法。
考虑一种置换会形成许多置换环。
设 h(f) 为置换 f 的置换环数量,若要用 k 种颜色给集合 X 染色,那么有 c(f)=kh(f)。
证明:
因为要计算不动点个数,所以一个置换环上面的点颜色必须都一样,有 k 种选择。又由于一共有 h(f) 个置换环,所以方案数为 kh(f)。
进一步得:
L=∣G∣1f∈G∑kh(f)
# 例题
# P4980 【模板】Pólya 定理
Poˊlya 定理板题。
考虑如何计算置换环个数。
枚举旋转 k 个,即从 1 旋转到 k+1,那么循环节长度为 klcm(n,k),所以共有 lcm(n,k)/kn=gcd(n,k) 个循环节。
Ans=n1k=1∑nngcd(n,k)
然后就要用到莫反基本功了。
Ans===n1k=1∑nngcd(n,k)n1d∣n∑ndk=1∑dn[gcd(k,dn)=1]n1d∣n∑ndφ(dn)
暴力计算 φ 也可以通过。
# [POJ 1286] Necklace of Beads
题目描述
n 个珠子串成一个圆,用 3 种颜色去涂色。问一共有多少种不同的涂色方法。(旋转和对称同构)
题解
旋转同构和对称同构分开考虑。
置换群 G 的大小为 2n,所以把上面所有情况都加起来之后再除以 2n 就是答案。