不想写很多冗杂的群论定义,所以本博客不是用来入门的。

如果你想要入门,请点这里

概要

对于一个作用在集合 \(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定理的更多相关文章

  1. Burnside引理和Polya定理之间的联系

    最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...

  2. Burnside引理和Polya定理

    转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...

  3. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  4. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  5. Burnside引理与Polya定理

    感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...

  6. Burnside引理与Polya定理 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...

  7. Burnside引理和polay计数 poj2409 Let it Bead

    题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...

  8. 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)

    题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...

  9. 等价类计数(Polya定理/Burnside引理)学习笔记

    参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...

  10. burnside引理&polya定理

    burnside引理&polya定理 参考资料: <polya计数法的应用>--陈瑜希 黄学长 置换: 置换即是将n个元素的染色进行交换,产生一个新的染色方案. 群: 一个元素的集 ...

随机推荐

  1. 基于java+springboot的求职招聘网站-求职招聘管理系统

    该系统是基于java+springboot开发的求职招聘网站.网上招聘管理系统.网上人才招聘系统.毕业生求职招聘系统.大学生求职招聘系统.校园招聘系统.企业招聘系统.是给师弟开发的毕业设计.大家学习过 ...

  2. CSS : 使用 z-index 的前提

    使用 z-index 前  , 需要将元素 定位设置为  position : relative .

  3. 数据-CRUD

    CRUD Create 创建 Read 读取 Update 更新 Delete 删除 场景 只要存在数据结构概念,就必存在CRUD

  4. [转帖]@Scope("prototype")的正确用法——解决Bean的多例问题

    https://www.jianshu.com/p/54b0711a8ec8 1. 问题,Spring管理的某个Bean需要使用多例   在使用了Spring的web工程中,除非特殊情况,我们都会选择 ...

  5. [粘贴]关于preparedStatement

    作者:wuxinliulei链接:https://www.zhihu.com/question/37043270/answer/83914933来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...

  6. Oracledb_exporter 获取表大小信息的简单方法

    Oracledb_exporter 获取表大小信息的简单方法 背景 用我儿子的现状作为背景: 我爱学习, 学习让我妈快乐. 下载exporter exporter 可以在github上面下载最新版本是 ...

  7. [转帖]top指令如何查询指定用户的所有进程?

    有两种方法. 1.top指令与字符串查询指令通过通道配合查询. 指令:    "-d 5"指的是每五秒刷新一次进程列表,"grep"是字符串查询指令,它可以将含 ...

  8. [转帖]TNS-12535 TNS-00505的处理方法

    硬件说明: 操作系统版本:ORACLE LINUX 6.3  64位 数据库版本:11.2.0.3   64位 问题说明: 在检查数据库的alert日志的时候,发现大量的12170和TNS-12535 ...

  9. [转帖]CPU Turbo&Cstate&Pstate简介

    https://www.jianshu.com/p/eaefd1eb0ac6 测试环境 CPU 1 Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz 16 3130 3 ...

  10. Inspur CS5280H BMC重装系统的过程

    Inspur CS5280H BMC重装系统的过程 背景 公司里面一台信创海光的设备 默认安装了银河麒麟v10的操作系统 但是在进行瀚高数据库压测时 总会出现无缘无故的宕机的情况. 昨天还特别学习了下 ...