Burnside引理与Polya定理

本文深入探讨了组合数学和图论在解决复杂计数问题中的应用,包括使用Burnside引理和Polya定理简化染色问题,以及在特定条件下计算本质不同方案数的方法。通过具体例子如魔力环问题和烷基、烷烃及烯烃的同分异构体计数,展示了这些理论的实际运用。

解决本质不同方案数

参考博客

"引理"和"定理"并没有什么区别

Burnside引理

∣ X / G ∣ = ∑ g ∈ G ∣ X g ∣ ∣ G ∣ |X/G|=\frac{\sum_{g\in G}|X^g|}{|G|} X/G=GgGXg

定义

符号定义解释
X X X A , B A,B A,B为两个有限集合, X = B A X=B^A X=BA表示所有从 A A A B B B的映射相当于给小球集合 A A A中的每个求涂上颜色集合 B B B中的颜色
G G G作用在 A A A上的置换群字面意思
X / G X/G X/G X X X上产生的所有等价类的集合 X X X中的两个映射能经过 G G G中的置换作用后相等,那么称它们在同一个等价类中
X g X^g Xg { x \{x {x| x ∈ X , g ( x ) = x } x\in X,g(x)=x\} xX,g(x)=x} X X X在置换 g g g下的不动点(字面意思)集合

证明

根据轨道-稳定子定理,证明在这里

注意当 X ⊆ B A X\subseteq B^A XBA时, B u r n s i d e Burnside Burnside引理依然成立,因为证明中并没有用到 X = B A X=B^A X=BA的条件

Polya定理

B u r n s i d e Burnside Burnside引理在处理染色问题的化简形式
a n s = ∑ g ∈ G m c ( g ) ∣ G ∣ ans=\frac{\sum_{g\in G}m^{c(g)}}{|G|} ans=GgGmc(g)

定义

符号定义解释
m m m可用的颜色数
c ( g ) c(g) c(g)置换 g g g中的轮换数对于 g g g中的每个映射连一条有向边,最后显然形成若干个简单环(因为是双射,每个点入度出度为1),环数即为轮换数

证明

证明在这里

其实比较显然,这里要化简的是计算不动点的数量

对于每一个置换 g g g,若其存在不动点,每个置换环上的点颜色显然分别相同,总共有 c ( g ) c(g) c(g)个环可以自由染色,其不动点数为 m c ( g ) m^{c(g)} mc(g)

应用

[MtOI2018]魔力环

题目描述

给定一个 n n n元环,把其中 m m m个点染成黑色,满足没有超过连续 k k k个点相连,求满足条件的本质不同的方案数

题解

G = ( { G=(\{ G=({顺时针旋转 0 0 0步,顺时针旋转 1 1 1步…顺时针旋转 n − 1 n-1 n1 } , + m o d    n ) \},+\mod n) },+modn)

考虑每个置换对答案的贡献

对于顺时针旋转 k k k步而言,一个元素是不动点当且仅当它有长度为 a a a的循环节且满足 a ∣ k a|k ak.显然, a ∣ n a|n an.所以一个元素是不动点的条件等价于它有长度为 gcd ⁡ ( k , n ) \gcd(k,n) gcd(k,n)的循环节

显然, k = 0 k=0 k=0时,任意一个合法的元素都是不定点,不过为了方便起见暂且把它认为是顺时针旋转 n n n

这样的话, G = ( { G=(\{ G=({顺时针旋转 1 1 1步,顺时针旋转 2 2 2步…顺时针旋转 n n n } , + ) \},+) },+)

f ( n , m ) f(n,m) f(n,m)表示将一个 n n n元环其中 m m m个点染成黑色,满足没有超过连续 k k k个点相连方案数

a n s = ∑ k = 1 n [ n gcd ⁡ ( k , n ) ∣ m ] f ( gcd ⁡ ( k , n ) , m × gcd ⁡ ( k , n ) n ) n ans=\frac{\sum_{k=1}^{n}[\frac{n}{\gcd(k,n)}|m]f(\gcd(k,n),\frac{m\times \gcd(k,n)}{n})}{n} ans=nk=1n[gcd(k,n)nm]f(gcd(k,n),nm×gcd(k,n))

因为循环节首尾相连,和环的情况差不多

套路,枚举 gcd ⁡ \gcd gcd

a n s = ∑ d ∣ n n ∑ k = 1 n [ gcd ⁡ ( k , n ) = d ] [ n d ∣ m ] f ( d , m × d n ) n ans=\frac{\sum_{d|n}^{n}\sum_{k=1}^{n}[\gcd(k,n)=d][\frac{n}{d}|m]f(d,\frac{m\times d}{n})}{n} ans=ndnnk=1n[gcd(k,n)=d][dnm]f(d,nm×d)
= ∑ d ∣ n n [ n d ∣ m ] f ( d , m × d n ) ∑ k = 1 n d [ gcd ⁡ ( k , n d = 1 ] n =\frac{\sum_{d|n}^{n}[\frac{n}{d}|m]f(d,\frac{m\times d}{n})\sum_{k=1}^{\frac{n}{d}}[\gcd(k,\frac{n}{d}=1]}{n} =ndnn[dnm]f(d,nm×d)k=1dn[gcd(k,dn=1]
= ∑ d ∣ n n [ n d ∣ m ] f ( d , m × d n ) φ ( n d ) n =\frac{\sum_{d|n}^{n}[\frac{n}{d}|m]f(d,\frac{m\times d}{n})\varphi(\frac{n}{d})}{n} =ndnn[dnm]f(d,nm×d)φ(dn)

这样的话考虑如何求出 f f f就行了

f ( n , m ) f(n,m) f(n,m)相当于将 m m m无标号黑点插进 n − m n-m nm有标号白点的环中,且没有连续 k k k个黑点的方案数,要乘上 ( i + 1 ) (i+1) (i+1)是因为若第一个白点前黑点的数量( ∈ [ 0 , n ] \in [0,n] [0,n])不同也算不同的方案

枚举 1 1 1号白点与 n n n号白点之间有几个黑点,把环上的问题转换成序列上的问题

f ( n , m ) = ∑ i = 0 min ⁡ ( m , k ) ( i + 1 ) × g ( n − m − 1 , m − i ) f(n,m)=\sum_{i=0}^{\min(m,k)}(i+1)\times g(n-m-1,m-i) f(n,m)=i=0min(m,k)(i+1)×g(nm1,mi), g ( n , m ) g(n,m) g(n,m)为将 m m m个点分为 n n n个有标号组,且每组的数量 ∈ [ 0 , n ] \in [0,n] [0,n]的方案数

钦点一些组打破限制

G ( n , m , q w q ) G(n,m,qwq) G(n,m,qwq)为将 m m m个点分为 n n n个有标号组(可以为 0 0 0),至少 q w q qwq qwq组数量 ∈ ( k , ∞ ] \in (k,\infty ] (k,]的方案数, T ( n , m ) T(n,m) T(n,m)为将 m m m个点分为 n n n个有标号组,且每组的数量 ∈ [ 0 , ∞ ] \in [0,\infty] [0,]的方案数

G ( n , m , q w q ) = C n q w q T ( n , m − ( k + 1 ) × q w q ) G(n,m,qwq)=C_{n}^{qwq}T(n,m-(k+1)\times qwq) G(n,m,qwq)=CnqwqT(n,m(k+1)×qwq)
T ( n , m ) = C n + m − 1 n − 1 T(n,m)=C_{n+m-1}^{n-1} T(n,m)=Cn+m1n1
g ( n , m ) = ∑ i = 0 min ⁡ ( n , ⌊ m k + 1 ⌋ ) ( − 1 ) i G ( n , m , i ) g(n,m)=\sum_{i=0}^{\min(n,\lfloor \frac{m}{k+1}\rfloor)}(-1)^iG(n,m,i) g(n,m)=i=0min(n,k+1m)(1)iG(n,m,i)
= ∑ i = 0 min ⁡ ( n , ⌊ m k + 1 ⌋ ) ( − 1 ) i C n i T ( n , m − ( k + 1 ) × i ) =\sum_{i=0}^{\min(n,\lfloor \frac{m}{k+1}\rfloor)}(-1)^iC_{n}^iT(n,m-(k+1)\times i) =i=0min(n,k+1m)(1)iCniT(n,m(k+1)×i)
= ∑ i = 0 min ⁡ ( n , ⌊ m k + 1 ⌋ ) ( − 1 ) i C n i C n + m − ( k + 1 ) × i − 1 n − 1 =\sum_{i=0}^{\min(n,\lfloor \frac{m}{k+1}\rfloor)}(-1)^iC_{n}^iC_{n+m-(k+1)\times i-1}^{n-1} =i=0min(n,k+1m)(1)iCniCn+m(k+1)×i1n1

现在单个 g ( n , m ) g(n,m) g(n,m)可以在 O ( min ⁡ ( n , m k ) ) = O ( m k ) O(\min(n,\frac{m}{k}))=O(\frac{m}{k}) O(min(n,km))=O(km)的时间内求出

那么单个 f ( d , ∗ ) f(d,*) f(d,)可以在 O ( d ) O(d) O(d)的时间内求出

注意到在 a n s = ∑ d ∣ n n [ n d ∣ m ] f ( d , m × d n ) φ ( n d ) n ans=\frac{\sum_{d|n}^{n}[\frac{n}{d}|m]f(d,\frac{m\times d}{n})\varphi(\frac{n}{d})}{n} ans=ndnn[dnm]f(d,nm×d)φ(dn)一式中仅当 n d ∣ m \frac{n}{d}|m dnm时会产生贡献,所以最后的复杂度为 O ( σ ( gcd ⁡ ( n , m ) ) ) O(\sigma(\gcd(n,m))) O(σ(gcd(n,m)))

烷基计数

题目描述

已知碳原子个数 n n n,求对应的烷基有多少种同分异构体

不考虑空间异构

题解

就是 n n n个点的每个点的子节点个数 ≤ 3 \leq 3 3的无标号有根树计数

一共有 6 6 6种置换,考虑每种置换下不动点的数量

先考虑简单 D P DP DP吧,设 f x f_x fx为有 x x x个碳原子的烷基计数

f x = ∑ i + j + k + 1 = x f i f j f k + 3 × ∑ 2 i + j + 1 = x f i f j + 2 × ∑ 3 i + 1 = x f i 6 f_x=\frac{\sum_{i+j+k+1=x}f_if_jf_k+3\times \sum_{2i+j+1=x}f_if_j+2\times \sum_{3i+1=x}f_i}{6} fx=6i+j+k+1=xfifjfk+3×2i+j+1=xfifj+2×3i+1=xfi

然后拿生成函数优化这个柿子

F ( x ) F(x) F(x) f f f O G F OGF OGF

F ( x ) = x F 3 ( x ) + 3 × F ( x 2 ) F ( x ) + 2 × F ( x 3 ) 6 + 1 F(x)=x\frac{F^3(x)+3\times F(x^2)F(x)+2\times F(x^3)}{6}+1 F(x)=x6F3(x)+3×F(x2)F(x)+2×F(x3)+1
6 F ( x ) = x F 3 ( x ) + 3 x × F ( x 2 ) F ( x ) + 2 x × F ( x 3 ) + 6 6F(x)=xF^3(x)+3x\times F(x^2)F(x)+2x\times F(x^3)+6 6F(x)=xF3(x)+3x×F(x2)F(x)+2x×F(x3)+6
G ( F ( x ) ) = x F 3 ( x ) + 3 F ( x 2 ) x F ( x ) + 2 x F ( x 3 ) + 6 − 6 F ( x ) = 0 G(F(x))=xF^3(x)+3F(x^2)xF(x)+2xF(x^3)+6-6F(x)=0 G(F(x))=xF3(x)+3F(x2)xF(x)+2xF(x3)+66F(x)=0

N e w t o n Newton Newton迭代

x , F ( x 2 ) , F ( x 3 ) m o d    x n x,F(x^2),F(x^3)\mod x^n x,F(x2),F(x3)modxn相当于常数项

G ′ ( F ( x ) ) = 3 x F 2 ( x ) + 3 x F ( x 2 ) − 6 G'(F(x))=3xF^2(x)+3xF(x^2)-6 G(F(x))=3xF2(x)+3xF(x2)6

F ( x ) ≡ f ( x ) − G ( f ( x ) ) G ′ ( f ( x ) ) m o d    x n F(x)\equiv f(x)-\frac{G(f(x))}{G'(f(x))}\mod x^n F(x)f(x)G(f(x))G(f(x))modxn

烷烃计数

已知碳原子个数 n n n,求对应的烷烃有多少种同分异构体

不考虑空间异构

题解

就是 n n n个点的每个点的度数个数 ≤ 4 \leq 4 4的无标号无根树计数

参考博客

无标号无根数还是很难做,考虑怎么做成除根节点外每个点的子节点个数 ≤ 3 \leq 3 3,根节点的子节点个数 ≤ 4 \leq 4 4的无标号有根树计数

考虑对于一棵无根树,设枚举一个点为关键点,整棵树的点等价类数为 p p p,枚举一条边为关键边,整棵树的边等价类数为 q q q,设 s = 1 s=1 s=1当且仅当有两个重心且两个重心等价,那么有 p − q + s = 1 p-q+s=1 pq+s=1

s = 0 s=0 s=0时,考虑除重心外的每个点与其父亲边(以重心为根)的贡献.若两个点等价,那么这两个点的父亲边(以重心为根)也等价,所以除重心外的贡献为 0 0 0

对于重心,它不可能与其他任何一个点等价,所以贡献为 1 1 1

s = 1 s=1 s=1时,因为两个重心等价,所以 p − q = − 1 p-q=-1 pq=1

这样,对于每棵无标号无根树用 p − q + s p-q+s pq+s统计答案即可做到不重不漏

对于 ∑ p , ∑ q , ∑ s \sum p,\sum q,\sum s p,q,s分别统计答案

∑ p \sum p p

枚举无标号无根树并统计点等价类,将每个点作为根,就相当于求无标号有根树

即相当于除根节点外每个点的子节点个数 ≤ 3 \leq 3 3,根节点的子节点个数 ≤ 4 \leq 4 4的无标号有根树计数

除根外的节点的子节点个数 ≤ 3 \leq3 3,即相当于前面做过的烷基计数

设烷基计数的 O G F OGF OGF A ( x ) A(x) A(x)

对根节点再做一遍 B u r n s i d e Burnside Burnside,设 ∑ p \sum p p O G F OGF OGF P ( x ) P(x) P(x)

一共有 4 ! = 24 4!=24 4!=24种置换,分类讨论即可

p x + 1 = ∑ i i + i 2 + i 3 + i 4 = x a i 1 a i 2 a i 3 a i 4 + 6 ∑ 2 i 1 + i 2 + i 3 = x a i 1 a i 2 a i 3 + 3 ∑ 2 i 1 + 2 i 2 = x a i 1 a i 2 + 8 ∑ 3 i 1 + i 2 = x a i 1 a i 2 + 6 ∑ 4 i 1 = x a i 1 24 p_{x+1}=\frac{\sum_{i_i+i_2+i_3+i_4=x}a_{i_1}a_{i_2}a_{i_3}a_{i_4}+6\sum_{2i_1+i_2+i_3=x}a_{i_1}a_{i_2}a_{i_3}+3\sum_{2i_1+2i_2=x}a_{i_1}a_{i_2}+8\sum_{3i_1+i_2=x}a_{i_1}a_{i_2}+6\sum_{4i_1=x}a_{i_1}}{24} px+1=24ii+i2+i3+i4=xai1ai2ai3ai4+62i1+i2+i3=xai1ai2ai3+32i1+2i2=xai1ai2+83i1+i2=xai1ai2+64i1=xai1

P ( x ) = x A 4 ( x ) + 6 A ( x 2 ) A 2 ( x ) + 3 A ( x 2 ) 2 + 8 A ( x 3 ) A ( x ) + 6 A ( x 4 ) 24 P(x)=x\frac{A^4(x)+6A(x^2)A^2(x)+3A(x^2)^2+8A(x^3)A(x)+6A(x^4)}{24} P(x)=x24A4(x)+6A(x2)A2(x)+3A(x2)2+8A(x3)A(x)+6A(x4)

∑ q \sum q q

就是求两个无标号有根树的根连起来后的不同构方案数

设答案的 O G F OGF OGF Q ( x ) Q(x) Q(x)

Q ( x ) = ( A ( x ) − 1 ) 2 + A ( x 2 ) − 1 2 Q(x)=\frac{(A(x)-1)^2+A(x^2)-1}{2} Q(x)=2(A(x)1)2+A(x2)1

− 1 -1 1是因为 0 0 0个点并不能被计入方案

∑ s \sum s s

设答案的 O G F OGF OGF S ( x ) S(x) S(x)

S ( x ) = A ( x 2 ) S(x)=A(x^2) S(x)=A(x2)

那么答案就是 P ( x ) − Q ( x ) + S ( x ) P(x)-Q(x)+S(x) P(x)Q(x)+S(x)

烯烃计数

已知碳原子个数 n n n,求对应的烯烃有多少种同分异构体

不考虑空间异构

题解

把碳-碳双键看作关键边,断开这条关键边,两边分别是一棵根节点的子节点个数 ≤ 2 \leq 2 2,除根节点外子节点个数 ≤ 3 \leq 3 3的无标号有根树

先用 B u r n s i d e Burnside Burnside引理求出这棵树的方案再合并即可

n n n个点的烷基计数的 O G F OGF OGF A ( x ) A(x) A(x),要求的树的 O G F OGF OGF P ( x ) P(x) P(x)

P ( x ) = x A ( x ) 2 + A ( x 2 ) 2 P(x)=x\frac{A(x)^2+A(x^2)}{2} P(x)=x2A(x)2+A(x2)

设答案的 O G F OGF OGF Q ( x ) Q(x) Q(x)

Q ( x ) = ( P ( x ) − 1 ) 2 + P ( x 2 ) − 1 2 Q(x)=\frac{(P(x)-1)^2+P(x^2)-1}{2} Q(x)=2(P(x)1)2+P(x2)1

同样, − 1 -1 1是因为 0 0 0个点不能被算入方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值