先定义几个含义和符号:
起始状态/方法/位置/元素/:以染色为例,起始状态是所有的染色方案,方法是以起始状态所有染色方案为基准转变为新的染色情景的操作(如旋转),位置则必须是没有任何染色效果的抽象空间,元素则是各种颜色
循环: 在方法作用下,元素在位置上形成一个首尾相接的环(且定义这些位置是等价的)
迹: 在方法作用下,循环所遍及到的所有位置的集合
等价关系:一个置换集合G,如果一个置换方法能把其中一个方案映射到另一个方案,则二者是等价的
等价类: 满足等价关系的方案属于同一等价类,如:这里有6个等价类

C(pi):表示pi方法形成循环的个数
循环的阶:循环中元素个数
Ck(pi):表示pi中k阶循环个数
如:p1=(154)(2)(3)
C(p1)=3,C1(p1)=1,C2(p1)=0,C3(p1)=2
-------------------------------------------------
C(fk):对象是“所有染色方案(且将每种方案效果合并起来)”
           对于每个染色方案 循环阶为1的fk方法的个数的总和 (即fk方法使所有染色方案哪些位置元素保持不变)
C'(fk):对象是“位置”
            fk方法下的循环个数
Zk: k不动置换类 {p|p属于G,p(k)=k},且Zk是G的子群 (使k位置元素不变的所有方法,|Zk|也叫k的稳定化子数)-->>这东西的存在其实就是哲学里的,”先抓一个定住,看其他的怎么变化“中的使之定住稳定住的东西
Ek:等价类 {a1(=k),a2,...,al},G中总存在pi,pi(a1)=ai(i=1,2,..l) (使这几个位置是等价的所有方法,|Ek|也叫k的轨道大小)
|Zk|*|Ek|=|G|: 轨道-稳定集定理:k的轨道大小*k的稳定化子数=总的变换个数 (G中所有的方法按k的轨道分类,对于每一个轨道来说,在这个轨道上的方法数为Zk,而每个轨道方法数一定相等。(由拉格朗日定理,Zk是子群就满足被整除的性质)
(注意这里”方法“不能跟”元素“这两个概念混在一起,方法是指对同一位置上“任意元素”都有相同效果,所以不要老纠结于元素的变化)
|H|整除|G|:拉格朗日定理。其中H是有限群G的子群(H的陪集要么重叠要么不相交,H的所有陪集的并等于G)
陪集: H为G的子群,对任意G中a,aH为陪集
位置方法转化定理:sgma(k=1~n)|Zk|=sgma(k=1~|G|)C(fk) (这里仅仅就是转换角度,将研究对象从位置k上的所有方法转变为方法fk对应的所有位置,最后求和还是一个东西,画张图就能明白)

burnside引理:
我们现在给出n个位置,那么根据等价类定义,有些位置上的等价类是相同的,Ei=Ej=Ek
我们要求不同的等价类个数,那么实际枚举位置k(1..n)可以想成对应的Ek为答案的贡献(1/|Ek|)
即 L=sgma(k=1~n)(1/|Ek|) //再用|Zk|*|Ek|=|G|: 轨道-稳定集定理进行变形,有
=(1/|G|)sgma(k=1~n)(|Zk|) //再用位置方法转化定理
=(1/|G|)sgma(k=1~|G|)C(fk)

但是,如对n个位置用m种颜色染色问题:
利用Burnside引理要首先列出所有n^m种可能的染色方案,然后找出在每个置换下保持不变的方法数。
显然当m或n很大的时候,操作会非常繁琐。 这时就需要用到polya定理。

polya定理:
它是抛弃起始状态(染色方案)这种观念而存在的定理(因为循环的迹上每个元素的选取是等价的,最后只要直接乘元素个数就行)
它而是将注意力完全放在抽象位置上,用C'(fk)操作,每个循环的迹有m种选择颜色的权利,所以m^(C'(fk))就是fk方法下不重复的染色图像个数(即等价类个数)
C(fk)=m^(C'(fk)) 两者其实都代表fk方法下等价类个数(这两者间直接证明基本上是不可能的,别妄想了),那么:
在所有方法下的等价类个数的总和除以方法数=在所有方法下的等价类个数
L=(1/|G|)sgma(k=1~|G|)m^(C'(fk))

burnside+polya 整理的更多相关文章

  1. POJ burnside&&polya整理练习

    POJ 2409 Let it Bead 这题就是polya公式的直接套用,唯一麻烦的是置换群的种类数,由于可以翻转,所以除了要加上pow(c,gcd(s,i))这些平面旋转的置换群,还要加上翻转的. ...

  2. Burnside&Polya

    以前只是直接用了这两个式子..今天才仔细看了证明..[网上的真是难懂啊 我看的几个博客地址(各有优缺): 其实如果能懂的话 只看博客B就可以了 首先是一些置换群方面的定义和性质  博客A:http:/ ...

  3. Burnside&Polya总结

    这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...

  4. Burnside&Polya总结

    这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...

  5. bzoj1004 [HNOI2008]Cards【Burnside/Polya】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 一道好题,但并不是好在融合了三个“考点”(计数,背包dp,逆元),其实背包dp以及求逆 ...

  6. 等价类计数:Burnside引理 & Polya定理

    提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...

  7. 【BZOJ】【1004】【HNOI2008】Cards

    Burnside/Polya+背包DP 这道题目是等价类计数裸题吧……>_> 题解:http://m.blog.csdn.net/blog/njlcazl_11109/8316340 啊其 ...

  8. 2017-12 CDQZ集训(已完结)

    从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了 ...

  9. 各种注意事项(还有c++的一些操作)

    转c++时间: 2017年8月9号 1.记得打头文件 2.=与==的区别(赋值|比较) 3.各种运算符的比较级(与Pascal不同),主要是==与位运算 *4.在OJ上scanf和printf时间优于 ...

随机推荐

  1. 使用SQL查看表字段和字段说明

    MySql: show full columns from tableName; Sql server: SELECT A.name AS table_name, B.name AS column_n ...

  2. Linux 线程实现模型

    1.Linux 线程的调度实现可以有两种模型, 一种是完全由进程负责,进程内启动一个线程调度器,由进程内的线程调度器完成调度. 缺点是:(1)各个线程自己加主动释放cpu的流程 (2)进程可能阻塞,达 ...

  3. python 标准类库-数据类型之集合-容器数据类型

    标准类库-数据类型之集合-容器数据类型   by:授客 QQ:1033553122 Counter对象 例子 >>> from collections import Counter ...

  4. 环信easeui集成:坑总结2018(二)

    环信EaseUI 集成,集成不做描述,看文档即可,下面主要谈一些对easeui的个性化需求修改. 该篇文章将解决的问题: 1.如何发送视频功能 2.未完待续.. ------------------- ...

  5. Android 进度条按钮实现(ProgressButton)

    有些App在点击下载按钮的时候,可以在按钮上显示进度,我们可以通过继承原生Button,重写onDraw来实现带进度条的按钮. Github:https://github.com/imcloudflo ...

  6. 使用 float 存储小数?

    很多程序员就会使用 float 类型来存储小数.sql 的 float 类型和其他大多数编程语言的 float 类型一样, 根据IEEE 754 标准使用二进制格式编码实数数据. 但是很多程序员并不清 ...

  7. xxx.jar或者xxx.war中没有主清单属性和spring-boot-maven-plugin的作用

    因为springboot本身集成了tomcat插件,所以我们可以直接使用mvn clean package命令打成jar包或者war包,然后使java -jar xxx.jar 或者 java -ja ...

  8. Django之--网页展示Hello World!

    上一篇:Django的安装启动完毕后,本文来试下hello world的效果~ 好吧,又开始了喜闻乐见的Hello World环节,本文使用Linux环境演示(Windows太麻烦). [root@p ...

  9. 轻量的web框架Bottle

    简洁的web框架Bottle 简介 Bottle是一个非常简洁,轻量web框架,与django形成鲜明的对比,它只由一个单文件组成,文件总共只有3700多行代码,依赖只有python标准库.但是麻雀虽 ...

  10. 排序算法之选择排序的思想以及Java实现

    1 基本思想 选择排序的思想是,每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 2,算法的实现(Java) package Algorit ...