Burnside引理与Polya定理
感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq。不过还是学一下吧用来装逼也是极好的
群的定义
与下文知识无关。。
给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运算"$*$",并满足
(1).封闭性:$\forall a, b \in G, \exists c \in G, a * b = c$
(2).结合律:$\forall a, b, c \in G, (a * b) * c = a * (b * c)$
(3).单位元:$\exists e \in G, \forall a \in G, a * e = e * a = a$
(4). 逆元:$\forall a \in G, \exists b \in G, a * b = b * a = e$,记$b = a^{-1}$
则称集合$G$在运算“$*$”之下是一个群,简称$G$是群
置换
$n$个元素, $1, 2, \dots n$之间的一个置换$\begin{pmatrix} 1 & 2 & \ldots n \\ a_{1} & a_{2} & \ldots a_{n} \end{pmatrix}$表示$1$被$1$到$n$中的某个数$a_1$取代,$1$被$1$到$n$中的某个数$a_2$取代,$\dots$直到$n$被$1$到$n$中的某个数$a_n$取代,且$a_1, a_2, \dots a_n$互不相同
置换群
置换群的标准定义涉及到新定义,在OI中你可以简单的认为
置换群的元素是置换,运算是置换的连接,
例如$$\begin{pmatrix} 1 & 2 & 3 & 4 \\ 3 & 1 & 2 & 4 \end{pmatrix}\begin{pmatrix} 1 & 2 & 3 & 4 \\ 4 & 3 & 2 & 1 \end{pmatrix}=\begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 3 & 1 \end{pmatrix}$$
解释一下:
在第一个置换中,$1$变为$3$,第二个置换中$3$变为$2$,因此$1$先变为$3$再变为$2$
在第一个置换中,$2$变为$1$,第二个置换中$1$变为$4$,因此$2$先变为$1$再变为$4$
在第一个置换中,$3$变为$2$,第二个置换中$2$变为$3$,因此$3$先变为$2$再变为$3$
在第一个置换中,$4$变为$4$,第二个置换中$4$变为$1$,因此$4$先变为$4$再变为$1$
Burnside引理
设$G= \{a_1,a_2, \dots a_g\}$是目标集$[1,n]$上的置换群,$D(a_i)$表示在置换$a_i$作用下不动点的个数。$L$表示本质不同的方案数,则
$$L = \frac{1}{|G|} \sum_{j = 1}^s D(a_j)$$
P♂lya定理
在Burnside引理中,$D(a_i)$,也就是不动点的个数往往不是很好计算。如果采用枚举每个元素的搜索算法,总时间复杂度为$O(nsp)$,其中$n$表示元素个数,$s$表示置换个数,$p$表示格子数
Polya定理对于特定的题目,提供了一种高效的计算方法
首先介绍一下循环的概念
$$\left( a_{1}a_{2}\ldots a_{n}\right) =\begin{pmatrix} a_{1} & a_{2} & \ldots & a_{n-1}a_{n} \\ a_{2} & a_{3} & \ldots & a_{n}a_{1} \end{pmatrix}$$
称为$n$阶循环。每个置换都可以写成若干不相交的循环的乘积,两个循环$(a_1, a_2, \dots a_n)$和$(b_1b_2 \dots b_n)$互不相交是指$a_i \not =b_j,i, j = 1,2, \dots n$
例如
$$\begin{pmatrix} 1 & 2 & 3 & 4 & 5 \\ 3 & 5 & 1 & 4 & 2 \end{pmatrix}=\left( 13\right) \left( 25\right) \left( 4\right)$$
解释一下,$1$先变成$3$,$3$再变成$1$,这样无限递归下去$(1,3)$便构成了一个循环
同理,$(2,5)$也会构成一个循环。
$4$只能变成自己,因此自己构成为一个循环
Polya定理:
设$G$是$p$个对象的一个置换群,用$m$种颜色涂染$p$个对象,则不同染色方案为$$L = \frac{1}{|G|} (m^{c(g_1)} + m^{c(g_2)} + \dots + m^{c(g_s)})$$
其中$G = \{g_1, g_2, \dots g_s \}$,$c(g_i)$为置换$g_i$的循环节数$(i = 1, 2, \dots s)$
Polya定理没有枚举元素,因此它的复杂度为$O(sp)$
但是它也有一定的限制条件,比如说某种颜色的不能选
这时候我们就需要利用一个高端操作(例如dp),来推广Polya定理
Burnside引理与Polya定理的更多相关文章
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
- Burnside引理与Polya定理 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...
- Burnside引理和Polya定理之间的联系
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...
- Burnside引理和Polya定理
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...
- Burnside引理与polay定理
#Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1& ...
- @总结 - 12@ burnside引理与pólya定理
目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...
- 【BZOJ1488】[HNOI2009]图的同构(Burside引理,Polya定理)
[BZOJ1488][HNOI2009]图的同构(Burside引理,Polya定理) 题面 BZOJ 洛谷 题解 求本质不同的方案数,很明显就是群论这套理论了. 置换一共有\(n!\)个,考虑如何对 ...
- 数学:Burnside引理与Pólya定理
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...
- Burnside 引理与 Pólya 定理
群 群的定义 在数学中,群是由一种集合以及一个二元运算所组成的,符合"群公理"的代数结构. 一个群是一个集合 \(G\) 加上对 \(G\) 的二元运算.二元运算用 \(\cdot ...
随机推荐
- C语言常用的编程规范
1排版 1-1相对独立的程序块之间.变量说明之后必须加空行. 示例:如下例子不符合规范. if (!valid_ni(ni)) { ... // program code } repssn_ind = ...
- 前端基础之BOM和DOM
关于网页交互:BOM和DOM javaScript分为ECMAScript,DOM,BOM . BOM(Browser object Model)是指浏览器对象模型,它使JavaScript有能力 ...
- FFmpeg 结构体学习(七): AVIOContext 分析
在上文FFmpeg 结构体学习(六): AVCodecContext 分析我们学习了AVCodec结构体的相关内容.本文,我们将讲述一下AVIOContext. AVIOContext是FFMPEG管 ...
- [Reversing.kr] Easy ELF Writeup
IDA打开,看到main()函数,当sub_8048451() 返回1 是flag正确. 跟踪函数. 脚本: #!usr/bin/env python #!coding=utf-8 __author_ ...
- 概率分布之间的距离度量以及python实现(三)
概率分布之间的距离,顾名思义,度量两组样本分布之间的距离 . 1.卡方检验 统计学上的χ2统计量,由于它最初是由英国统计学家Karl Pearson在1900年首次提出的,因此也称之为Pearson ...
- 「造个轮子」——cicada(轻量级 WEB 框架)
前言 俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围. 创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式. 好了,现在着重来谈谈 cicada 这个项目 ...
- 『扩展欧几里得算法 Extended Euclid』
Euclid算法(gcd) 在学习扩展欧几里得算法之前,当然要复习一下欧几里得算法啦. 众所周知,欧几里得算法又称gcd算法,辗转相除法,可以在\(O(log_2b)\)时间内求解\((a,b)\)( ...
- (二)通过fork编写一个简单的并发服务器
概述 那么最简单的服务端并发处理客户端请求就是,父进程用监听套接字监听,当有连接过来时那么监听套接字就变成了已连接套接字(源和目的的IP和端口都包含了),这时候就可以和客户端通信,但此时其他客户端无法 ...
- 由Nginx的DNS缓存导致的访问404
现象 访问某个URL出现404,而且全站都是404.通过日志查看Nginx的规则也正确,请求被代理到指定位置. 排查 最近针对这个站点没有修改过Nginx配置也没有站点升级.所以应该是其他原因.首先P ...
- tensorflow机器学习模型的跨平台上线
在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但是由于tensorflow模型往往较大,使用无法 ...