Burnside 定理

问题:

给定一个 \(n\) 个点,\(n\) 条边的环,有 \(m\) 种颜色,给每个顶点染色,问有多少种本质不同的染色方案,答案对 \(10^9+7\) 取模

注意本题的本质不同,定义为:只需要不能通过旋转与别的染色方案相同

题目初步解读

我们考虑如果不要求本质不同只需要 \(n^n\) 。

但因为无标号的环就会重复。

例如这是一个 4 个点, 2 种颜色的情况:

在这里面如果不要求本质不同就有 16 种方案,若要求,则只有 6 种。

同一行的都是一种方案。

Burnside 引入

我们先来一些定义

置换群

令集合 \(N=\{1,2,\cdots,n\}\) 。

令集合 \(M\) 为 \(N\) 若干个排列构成的集合。

令群 \(G = (M,\times)\) 其中符号 \(\times\) 解释如下:

\(\sigma\) 是一个排列,也就是 \(M\) 周一个元素。

写为 \(\sigma \times a\) 不过更习惯被表示为 \(\sigma(a)\) 。

其运算规则为:\(\sigma(a)= (a_{\sigma_1},a_{\sigma_2}...a_{\sigma_n})\)。

在前面样例中,置换群是:

\((\{\)旋转\(0°,\)旋转\(90°,\)旋转\(180°,\)旋转\(270° \},\times)\)

若写成排列则是:

\((\{\{1,2,3,4\},\{2,3,4,1\},\{3,4,1,2\},\{4,1,2,3\}\},\times)\)

轨道

考虑一个作用在 \(X\) 上的置换群 \(G\) , \(X\) 中一个元素 \(x\) 的轨道则是 \(x\) 通过 \(G\) 中元素可以转移到的元素的集合。记作 \(G(x)\) 。

样例中每一行就是一个轨道。例如下面就是一个轨道。

稳定子

稳定子定义为:\(G^x = \{g|g\in G,g \times x = x\}\)。

使用语言描述,便是群 \(G\) 中满足 \(g(x)=x\) 的所有元素 \(g\) 所构成的集合。

样例中:

的稳定子为 \(\{\)旋转\(0°\}\),

的稳定子为 \(\{\)旋转\(0°,\)旋转\(180°\}\),

的稳定子为 \(\{\)旋转\(0°,\)旋转\(90°,\)旋转\(180°,\)旋转\(270°\}\)。

轨道-稳定子定理:

我们可以发现:

1.在同一轨道的元素稳定子个数一定相等。

2.稳定子大小乘轨道大小等于群 \(G\) 大小。

\[|G^x|\times |G(x)|=|G|
\]

没错,他是个定理,考虑感性证明:

一个元素 \(x\) 按照 \(G\) 的操作一定可以得到轨道内所有元素,也就是集合 \(G(x)\) 。

但在操作过程中会有重复的,重复的次数也就是稳定子集合大小。

详细证明可以看这里

不动点

若 \(g(x) = x\) 则称 \(x\) 是在 \(g\) 下的不动点。

定义集合 \(X^g = \{x|g(x) = x,x\in X\}\)。

稳定子和不动点有类似反演的关系。

若 x 的稳定子集合里有 \(g\),那么 g 下不动点集合中也有 x。

所以对于每一个 \(x\) 稳定子的个数之和等于对于每一个 \(g\) 不动点个数之和

形式化

\[\sum_{x\in X} {|G(x)|} = \sum_{g\in G} |X^g|
\]

注意稳定子是对于 g 来说的,而不动点是对于 x 来说的。

例如 ''旋转180°'' 不动点是

Burnside 定理

公式:

我们要求的答案一般来说也就是轨道数量。

\[ans = \dfrac{1}{|G|}\sum_{g\in G} X^g
\]

证明:

等价类数量也就是轨道数量。

\(|G(x)|\) 代表 \(x\) 所在轨道大小。

\[ans = \sum_{x\in X} \frac 1 {|G(x)|}
\]

根据轨道-稳定子定理得

\[ans = \sum_{x\in X} \frac {|G^x|}{|G|}=\frac 1 {|G|} \sum_{x\in X} {|G^x|}
\]

用稳定子和不动点关系得:

\[ans = \dfrac{1}{|G|}\sum_{g\in G} |X^g|
\]

回到题目

扩展到 \(n\),现在的 \(G\) 就是\(\{\) 旋转 \(0\) 次,旋转 \(1\) 个,\(\cdots\),旋转\(n-1\)个 \(\}\)。

考虑旋转 \(k\) 次的不动点个数是 \(n^{\gcd(k,n)}\)。

当 \(\gcd(k,n) = k\):

我们按照 \(k\) 将环切成 \(\frac n k\) 份,然后标上号。

将他旋转。

我们发现每一份必须一样他才是个不动点。

答案就是 \(n^k = n^{\gcd(n,k)}\)。

当 \(gcd(k,n) \ne k\):

令 \(g = \gcd(k,n)\) 那么我们将他旋转 \(g \times \frac k g\) ,等价于将长度为 \(g\) 的旋转 \(\frac k g\) 次。

答案就是 \(n^{gcd(n,k)}\)。

如果还不懂,建议手模一下 \(k = 4,n = 6\) 这个样例。

应用Burnside则有

\[Ans = \dfrac{1}{n}\sum_{k=1}^{n} n^{\gcd(k,n)}
\]

发现有 \(\gcd\) ,可以莫反。

莫反基操,不多说。

\[\frac{1}{n}\sum_{d|n}n^d \varphi(\frac{n}{d})
\]

直接暴力可过。

Pólya 定理

就是染色问题中Burnside的运用。

对于一个排列 \(g\) ,我们将每一个 \(i\) 向 \(a_i\) 连一条边,会得到若干环,每个环内元素颜色应该相同。定义 \(c(g)\) 代表环数量,那么 Pólya 就是

\[\dfrac{1}{|G|}\sum_{g\in G}m^{c(g)}
\]

Burnside 定理的更多相关文章

  1. 我对Burnside定理的理解

    我想了想,发现可以证明burnside定理. 置换:n个元素1,2,-,n之间的一个置换表示1被1到n中的某个数a1取代,2被1到n中的某个数a2取代,直到n被1到n中的某个数an取代,且a1,a2, ...

  2. poj 2409+2154+2888(Burnside定理)

    三道burnside入门题: Burnside定理主要理解置换群置换后每种不动点的个数,然后n种不动点的染色数总和/n为answer. 对于旋转,旋转i个时不动点为gcd(n,i). 传送门:poj ...

  3. HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)

    传送门:Gift 题意:由n(n<=1e9)个珍珠构成的项链,珍珠包含幸运数字(有且仅由4或7组成),取区间[L,R]内的数字,相邻的数字不能相同,且旋转得到的相同的数列为一种,为最终能构成多少 ...

  4. 埋锅。。。BZOJ1004-置换群+burnside定理+

    看这道题时当时觉得懵逼...这玩意完全看不懂啊...什么burnside...难受... 于是去看了点视频和资料,大概懂了置换群和burnside定理,亦步亦趋的懂了别人的代码,然后慢慢的打了出来.. ...

  5. 【Burnside定理】&【Pólya定理】

    Burnside & Pólya (详细内容请参阅<组合数学>或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎 ...

  6. BZOJ1004 [HNOI2008]Cards 【burnside定理 + 01背包】

    题目链接 BZOJ1004 题解 burnside定理 在\(m\)个置换下本质不同的染色方案数,等于每种置换下不变的方案数的平均数 记\(L\)为本质不同的染色方案数,\(m\)为置换数,\(f(i ...

  7. bzoj 1004 1004: [HNOI2008]Cards burnside定理

    1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Stat ...

  8. bzoj1004 [HNOI2008]Cards Burnside定理+背包

    题目传送门 思路:首先是Burnside引理,要先学会这个博客. Burnside引理我们总结一下,就是 每种置换下不动点的数量之和除以置换的总数,得到染色方案的数量.        这道题,显然每种 ...

  9. POJ 1286 Necklaces of Beads (Burnside定理,有限制型)

    题目链接:http://vjudge.net/problem/viewProblem.action?id=11117 就是利用每种等价情形算出置换节之后算组合数 #include <stdio. ...

  10. 1004: [HNOI2008]Cards burnside定理

    https://www.lydsy.com/JudgeOnline/problem.php?id=1004 输入数据保证任意多次洗牌都可用这 m种洗牌法中的一种代替,且对每种洗牌法,都存在一种洗牌法使 ...

随机推荐

  1. cryptohack wp day(1)

    就从头开始吧 第一题 (ASCII) 一道简单的ASCII码转换,直接用题目的提示代码解就行了 ascii=[99, 114, 121, 112, 116, 111, 123, 65, 83, 67, ...

  2. 2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除。 返回有多少种有效删除。 注意 : 不能全删除,删成空串不允许, 字符串长

    2023-03-22:给定一个字符串str, 如果删掉连续一段子串,剩下的字符串拼接起来是回文串, 那么该删除叫做有效的删除. 返回有多少种有效删除. 注意 : 不能全删除,删成空串不允许, 字符串长 ...

  3. 2020-03-02:在无序数组中,如何求第K小的数?

    2020-03-02:在无序数组中,如何求第K小的数? 福哥答案2021-03-02: 1.堆排序.时间复杂度:O(N*lgK).有代码. 2.单边快排.时间复杂度:O(N).有代码. 3.bfprt ...

  4. Django4全栈进阶之路15 项目实战(用户管理):login.html登录画面设计

    要编写登录页面,我们需要完成以下步骤: template文件夹中创建 login.html 模板文件,输入以下 HTML 代码: {% extends 'base.html' %} {% block ...

  5. vue全家桶进阶之路15:自定义指令

    Vue 2.x 中的自定义指令是一种可以用于扩展 Vue.js 核心功能的特性.指令可以用于操作 DOM 元素的属性.监听 DOM 事件.控制 DOM 行为等等,可以将常见的交互行为封装成指令,从而让 ...

  6. k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离

    1.基于镜像分层构建及自定义镜像运行Nginx及Java服务并基于NFS实现动静分离 1.1.业务镜像设计规划 根据业务的不同,我们可以导入官方基础镜像,在官方基础镜像的基础上自定义需要用的工具和环境 ...

  7. hw面试常见中间件漏洞

    apache漏洞 未知扩展名解析漏洞 漏洞原理:Apache对文件名后缀的识别是从后往前进行的,当遇到不认识的后缀时,继续往前,直到识别 影响版本:使用module模式与php结合的所有版本,apac ...

  8. NLM 公布了一个新的重新设计的 PubMed 数据库

    经常使用 PubMed 的童鞋可能已经发现,美国国家医学图书馆(NLM)在今年 10 月份左右发布了一个新的重新设计的版本以取代 PubMed 数据库的现有版本,新版本现在已经上线,可以通过下面的链接 ...

  9. 关于Pod中进程在节点中的研究

    最近研究OpenShift virtulization, 各种Pod对KVM进程的封装,引发了Pod中进程到底在Node中是什么表现形势的好奇,因为对基础知识的不扎实,还是希望找个环境能仔细看看,建立 ...

  10. 数位DP?记忆化罢了!

    我看了半天的数位 DP,DP 没学会,人倒是麻了. 解决什么 一般用于求解给你一个区间 \([l,r]\),问你其中满足条件的数有多少个. 这种题目还是蛮常见的,我们一般情况下暴力只能拿一少部分分,之 ...