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

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

概要

对于一个作用在集合 \(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. @Conditional注解使用及@ConditionalOnXXX各注解的作用

    本文为博主原创,转载请注明 出处: 一.@Conditional注解作用: 必须是 @Conditional 注解指定的条件成立,才会在容器中添加组件,配置类里面的所有配置才会生效 二.@Condit ...

  2. Guava缓存工具类封装和使用

    本文为博主原创,未经允许不得转载: Guava是谷歌提供的一款强大的java工具库,里面包含了很多方便且高效的工具,在项目开发中有业务场景需要保存数据到内存当中, 且只需要保存固定时间就可以,该数据只 ...

  3. SD协议-基本概念

    1.SD协议版本 SD 1.1 SD 2.0 SD 3.0 在看协议的时候,需要注意协议的版本,注意版本之间的差别 SD协议是常见的数据通信和存储卡之间的协议 HDMI是显示相关的协议,遵循HDMI协 ...

  4. NSSCTF Round#11 Basic 密码个人赛复盘

    [NSSRound#11 Basic]ez_enc ABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAA ...

  5. ubuntu-软件管理工具-apt

  6. Razor 语法@Html.DropDownList,根据List集合或者枚举生成Select标签

    1.根据List集合生成Select标签,根据数据库数据换成SelectListItem集合 Action 方法(也可使用下方的List集合的扩展方法): 1 var selectList = DBL ...

  7. [转帖]一图胜千言 -- SQL Server 基准测试

    https://blog.51cto.com/ultrasql/2130487 文章标签基准测试文章分类SQL Server数据库阅读数1116  

  8. [转帖]Linux cache参数调优

    https://zhuanlan.zhihu.com/p/136237953 缓存机制(cache)是保证Linux环境下对硬盘/flash操作效率的有效方式.cache建立在内存中,它缓存了硬盘/f ...

  9. TiDB的搭建与维护过程

    TiDB的搭建与维护过程 背景 总结一下TiDB的搭建以及简单维护过程. 目标: 简单快速的创建TiDB数据库,以及进行备份恢复等工作. TiDB 简介 TiDB(全称:Ti Distributed ...

  10. [转帖]tcp、http和socket的区别

    https://www.jianshu.com/p/88d69454bdde 一:tcp协议 tcp协议属于传输层协议(UDP也属于传输层协议,但是UDP协议是无状态的).建立一个TCP连接需要三次握 ...