Burnside引理和Pólya定理
不想写很多冗杂的群论定义,所以本博客不是用来入门的。
如果你想要入门,请点这里。
概要
对于一个作用在集合 \(X\) 上的有限群 \(G\) ,对于每个 \(g\in G\) 令 \(X^g\) 表示 \(X\) 在 \(g\) 作用下的不动元素,即 \(X^g={x|x\cdot g=x,x\in X}\) ,则轨道数 \(|X/G|=\dfrac{\sum\limits_{g\in G}|X^g|}{|G|}\) 。
假设 \(X\) 中的两个元素 \(x_1,x_2\) ,存在变换,使得 \(x_1\cdot g=x_2\) ,则称 \(x_1\) 和 \(x_2\) 在同一个等价类里,上式中 \(|X/G|\) 就是等价类的数量。
好像也没有说明白,假设群 \(G\) 里面的 \(g\) 均表示图形的某种变换(如平移,旋转,翻折等),能够在进行一系列变换之后能够完全重合的图形成为同一种图形,对于某一种变换 \(g\) ,设有 \(c(g)\) 个图形属于某个图形的集合 \(X\) 在这种变换下和自己重合,则不同的图形一共有 \(\dfrac{1}{|G|}\sum\limits_{g\in G}c(g)\) 种。
举个例子:对于正三角形的三个顶点,我们用实心点和虚心点来标记,假设变换为旋转和翻折,则我们会有如下的6种变换方式。
对于所有可能存在的 \(2^3=8\) 个三角形,我们可以知道每一种变换分别有多少个三角形是不变的 \(c(g_1)=8,c(g_2)=2,c(g_3)=2,c(g_4)=4,c(g_5)=4,c(g_6)=4\) 。
所以本质不同的正三角形一共有 \(\dfrac{\sum\limits_{g\in G}c(g)}{|G|}=\dfrac{8+2+2+4+4+4}{6}=4\) 个,暴力验证一下就是这个答案。
接下来我们就可以考虑如下的问题了:我们对于一个图形(可能是网格,也可能是多面体,甚至可以是一个树或者图),要将它用 \(m\) 中颜色染色,置换群为 \(G\) ,问有多少种本质不同的方案。
我们考虑对于一个置换 \(g\in G\) 有哪些染色方案是不会变化的,也就是 \(c(g)\) 的值为多少。
不难发现,如果可以将置换表示成 \(k=\sigma(g)\) 环,只有每一个环内的所有颜色相同的时候,方案才不会变化,每个环有 \(m\) 种颜色可选,所以 \(c(g)=m^k\) 。
也就是说,本质不同的方案一共有 \(\dfrac{1}{|G|}\sum\limits_{g\in G}m^{\sigma(g)}\) ,这个也就是我们熟知的Pólya定理了。
例题
[HNOI2008] Cards
直接套用Burnside引理。
每一种洗牌法相当于一种置换(注意,还有不洗牌这种置换),我们需要求出不动元素的数量。
在这题的条件下不动元素就相当于数每一个环内的颜色相同,我们考虑对每一个置换变成若干个环,并对其进行三维背包,维护 \(f_{r,b,g}\) 表示染了 \(r\) 和红色, \(b\) 个蓝色和 \(c\) 个绿色的方案数。
最后将答案乘上 \(\dfrac{1}{m}\) 即可。
整体复杂度 \(O(RBG\sum k)\) ,其中 \(\sum k\) 表示所有置换的环的总数,且 \(\sum k\leqslant O(nm)\) 。
[SDOI2013]项链
求满足下列条件的项链个数:
1.这串项链由 \(n\) 颗珠子构成。
2.每一个珠子上面的每个数字 \(x\),必须满足 \(0<x\leqslant a\),且珠子上面三个数字的最大公约数要恰好为 \(1\)。
3.相邻的两个珠子必须不同。两个珠子被认为是相同的,当且仅当它们经过旋转,或者翻转后能够变成一样的。
4.两串项链如果能够经过旋转变成一样的,那么这两串项链被认为是相同的。
首先,我们枚举 \(d|\gcd(x_1,x_2,x_3)\) 的珠子数并进行莫比乌斯反演,可以得到本质不同的珠子有 \(m=\dfrac{\sum\limits_{i=1}^a\left(\dfrac{a}{i}\right)^3+3\times\sum\limits_{i=1}^a\left(\dfrac{a}{i}\right)^2+2}{6}\) 种,求职的复杂度为 \(O(a)\) 。
我们考虑对于某一种置换的不动点数量:对于顺时针旋转 \(k\) 个单位,他相当于是 \(\gcd(n,k)\) 个置换环,由于需要相邻两点不同,相当于需要对长为 \(\gcd(n,k)\) 的环进行 \(m\) 染色,且相邻的颜色不能相同,由于对于 \(n\) 元环 \(m\) 染色的方案数为 \((m-1)^n+(-1)^n(m-1)\) 。
对于 \(d|n\) , \(\gcd(n,k)=d\) 的 \(k\) 有 \(\varphi(\frac{n}{d})\) 个,所以最终答案为 \(\dfrac{1}{n}\sum\limits_{d|n}\varphi(\frac{n}{d})[(m-1)^d+(-1)^d(m-1)]\) 。
求值复杂度为 \(O(\sqrt{n}\log n)\) 。
Luogu P4980 【模板】Pólya 定理
对于这个环,它的置换群就是 \(n\) 种旋转方式,假设某一个旋转是将所有的点对应向后的 \(k\) 第个,也就意味着他们会出现 \(\gcd(n,k)\) 个环,也就意味着有 \(n^{\gcd(n,k)}\) 种方案在这种变换下不会改变。
所以最终答案为 \(\dfrac{1}{n}\sum\limits_{i=1}^nn^{\gcd(n,i)}=\dfrac{1}{n}\sum\limits_{d|n}n^d\sum\limits_{i=1}^n[gcd(n,i)==d]=\dfrac{1}{n}\sum\limits_{d|n}n^d\sum\limits_{i=1}^{\frac{n}{d}}[gcd(\frac{n}{d},i)==1]=\dfrac{1}{n}\sum\limits_{d|n}\varphi(\frac{n}{d})n^d\) 。
暴力枚举 \(\leqslant \sqrt{n}\) 的因数,并暴力求解 \(\varphi(\frac{n}{d})\) 可以得到一个亚线性的做法。
[蓝桥杯 2015 国 B] 模型染色
置换群由满足在变换之后图同构的置换构成,对于这个顶点的置换,我们可以用 \(O(n)\) 的时间来求出环的数量。
由于 \(n\) 很小,暴力枚举所有的置换并判图是否同构即可。
最终复杂度为 \(O(m\times n!+n|G|)\) 。
[AHOI2002]黑白瓷砖
不难发现只有6种置换方式(具体可以参考最上面的例子)。
对于不变的置换(第一种),有 \(\dfrac{n(n+1)}{2}\) 个环。
对于旋转类置换(第二三种),有 \(\left\lceil\dfrac{n(n+1)}{6}\right\rceil\) 个环(除中心点外均三个一组)。
对于反转类置换(第四五六种),有 \(\dfrac{\frac{n(n+1)}{2}+\left\lceil\frac{n}{2}\right\rceil}{2}\) 个环(除对称轴上的均两两一组)。
所以最终答案为 \(\dfrac{2^{\frac{n(n+1)}{2}}+2\times 2^{\left\lceil\frac{n(n+1)}{6}\right\rceil}+3\times 2^{\frac{\frac{n(n+1)}{2}+\left\lceil\frac{n}{2}\right\rceil}{2}}}{6}\) ,需要写高精度。
[HNOI2009]图的同构计数
相当于对于完全图的每一条边染上黑色或者白色,问本质不同的方案数有多少。
置换群为所有 \(n!\) 种置换。
考虑对于一种置换有多少个环:
这 \(n!\) 种置换是和点编号的排列一一对应的,我们可以先找出这个排列中的所有环长 \(c_1,c_2\dots c_k\)。
对于两个不同的环 \(c_i,c_j\) 他们之间共有 \(c_ic_j\) 条边,这些边一共构成 \(\gcd(c_i,c_j)\) 个环。
对于某一个环 \(c_i\) ,其中一个节点向后跨越了 \(\leqslant \dfrac{c_i}{2}\) 个节点的边可以和所有环一一对应(对于 \(t> \dfrac{c_i}{2}\) 的,它和跨越 \(c_i-t\) 个节点的在同一个环内),也就是有 \(\left\lfloor\dfrac{c_1}{2}\right\rfloor\) 个环。
在所有的置换中一共有 \(\dfrac{n!}{\prod\limits_{i=1}^kc_i\cdot\prod\limits_{i-1}^n\sum\limits_{j=1}^k[c_j=i]}\) 个满足上述条件。
搜索 \(\{c\}\) 的值,对于每一种统计出答案即可。
[SHOI2006] 有色图
这题为上面一题的加强版,将 \(2\) 种颜色变为了 \(m\) 种颜色,方法和上面一题基本相同。
Burnside引理和Pólya定理的更多相关文章
- Burnside引理和Polya定理之间的联系
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...
- Burnside引理和Polya定理
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...
- Burnside引理和polay计数学习小记
在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
- Burnside引理与Polya定理
感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...
- Burnside引理与Polya定理 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...
- Burnside引理和polay计数 poj2409 Let it Bead
题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...
- 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...
- 等价类计数(Polya定理/Burnside引理)学习笔记
参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...
- burnside引理&polya定理
burnside引理&polya定理 参考资料: <polya计数法的应用>--陈瑜希 黄学长 置换: 置换即是将n个元素的染色进行交换,产生一个新的染色方案. 群: 一个元素的集 ...
随机推荐
- 基于java+springboot的求职招聘网站-求职招聘管理系统
该系统是基于java+springboot开发的求职招聘网站.网上招聘管理系统.网上人才招聘系统.毕业生求职招聘系统.大学生求职招聘系统.校园招聘系统.企业招聘系统.是给师弟开发的毕业设计.大家学习过 ...
- CSS : 使用 z-index 的前提
使用 z-index 前 , 需要将元素 定位设置为 position : relative .
- 数据-CRUD
CRUD Create 创建 Read 读取 Update 更新 Delete 删除 场景 只要存在数据结构概念,就必存在CRUD
- [转帖]@Scope("prototype")的正确用法——解决Bean的多例问题
https://www.jianshu.com/p/54b0711a8ec8 1. 问题,Spring管理的某个Bean需要使用多例 在使用了Spring的web工程中,除非特殊情况,我们都会选择 ...
- [粘贴]关于preparedStatement
作者:wuxinliulei链接:https://www.zhihu.com/question/37043270/answer/83914933来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- Oracledb_exporter 获取表大小信息的简单方法
Oracledb_exporter 获取表大小信息的简单方法 背景 用我儿子的现状作为背景: 我爱学习, 学习让我妈快乐. 下载exporter exporter 可以在github上面下载最新版本是 ...
- [转帖]top指令如何查询指定用户的所有进程?
有两种方法. 1.top指令与字符串查询指令通过通道配合查询. 指令: "-d 5"指的是每五秒刷新一次进程列表,"grep"是字符串查询指令,它可以将含 ...
- [转帖]TNS-12535 TNS-00505的处理方法
硬件说明: 操作系统版本:ORACLE LINUX 6.3 64位 数据库版本:11.2.0.3 64位 问题说明: 在检查数据库的alert日志的时候,发现大量的12170和TNS-12535 ...
- [转帖]CPU Turbo&Cstate&Pstate简介
https://www.jianshu.com/p/eaefd1eb0ac6 测试环境 CPU 1 Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz 16 3130 3 ...
- Inspur CS5280H BMC重装系统的过程
Inspur CS5280H BMC重装系统的过程 背景 公司里面一台信创海光的设备 默认安装了银河麒麟v10的操作系统 但是在进行瀚高数据库压测时 总会出现无缘无故的宕机的情况. 昨天还特别学习了下 ...