感觉这两个东西好鬼畜= = ,考场上出了肯定不会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定理的更多相关文章

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

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

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

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

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

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

  4. Burnside引理和Polya定理

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

  5. Burnside引理与polay定理

    #Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1& ...

  6. @总结 - 12@ burnside引理与pólya定理

    目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...

  7. 【BZOJ1488】[HNOI2009]图的同构(Burside引理,Polya定理)

    [BZOJ1488][HNOI2009]图的同构(Burside引理,Polya定理) 题面 BZOJ 洛谷 题解 求本质不同的方案数,很明显就是群论这套理论了. 置换一共有\(n!\)个,考虑如何对 ...

  8. 数学:Burnside引理与Pólya定理

    这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...

  9. Burnside 引理与 Pólya 定理

    群 群的定义 在数学中,群是由一种集合以及一个二元运算所组成的,符合"群公理"的代数结构. 一个群是一个集合 \(G\) 加上对 \(G\) 的二元运算.二元运算用 \(\cdot ...

随机推荐

  1. nova file injection的原理和调试过程

    file injection代码 file injection原理来讲是比较简单的,在nova boot命令中,有参数--file,是将文件inject到image中 nova boot --flav ...

  2. [python] bluepy 一款python封装的BLE利器

    1.bluepy 简介 bluepy 是github上一个很好的蓝牙开源项目,其地址在 LINK-1, 其主要功能是用python实现linux上BLE的接口. This is a project t ...

  3. 混合物App开发中,在移动设备上调试查看日志,重写window.console

    (function(){ var print={ lock:true, log:function(param){ if(this.lock){ var element=document.createE ...

  4. Java面试题整理:这些Java程序员面试中经常遇见的题目,必须掌握才能有好结果

    1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时 ...

  5. [Swift]LeetCode397. 整数替换 | Integer Replacement

    Given a positive integer n and you can do operations as follow: If n is even, replace n with n/2. If ...

  6. [Swift]LeetCode1011. 在 D 天内送达包裹的能力 | Capacity To Ship Packages Within D Days

    A conveyor belt has packages that must be shipped from one port to another within D days. The i-th p ...

  7. String补充

    String类不可变和可变字符序列区别_字符串比较 String类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”.也就是指对象内部成员变量的值无法再改变, p ...

  8. eclipse项目有红叉的解决办法

    eclipse项目上有红叉,说明这个项目存在一些的问题,对于这种情况需要具体来看. 1 新导入项目的红叉 如果是新导入的项目,一般红叉就只在项目名称上面有红叉,项目下的分项上面没有,这一般是由于当初项 ...

  9. 【Spark篇】---SparkStreaming+Kafka的两种模式receiver模式和Direct模式

    一.前述 SparkStreamin是流式问题的解决的代表,一般结合kafka使用,所以本文着重讲解sparkStreaming+kafka两种模式. 二.具体 1.Receiver模式    原理图 ...

  10. 【Spark篇】---Spark中控制算子

    一.前述 Spark中控制算子也是懒执行的,需要Action算子触发才能执行,主要是为了对数据进行缓存. 控制算子有三种,cache,persist,checkpoint,以上算子都可以将RDD持久化 ...