Burnside&Polya
以前只是直接用了这两个式子。。今天才仔细看了证明。。【网上的真是难懂啊
我看的几个博客地址(各有优缺): 其实如果能懂的话 只看博客B就可以了
首先是一些置换群方面的定义和性质 博客A:http://blog.csdn.net/xym_CSDN/article/details/53456447
然后是burnside的证明 博客B:http://blog.csdn.net/gengmingrui/article/details/50564027
还有两个定理的式子和举例 博客C:http://blog.csdn.net/liangzhaoyang1/article/details/72639208
但是对于博客B,我看的时候遇到了几个问题
1、 设G={a1,a2,…ag}是目标集[1,n]上的置换群。
这里涉及到两个集合 一个是置换群,一个是目标集
目标集是一个状态集合, 在OI中举个例子 {
m个格子黑白染色, 状态数有2^m种, 每一种都是目标集中的一个元素,所以[1,n]实际上是[1,2^m];
而置换就可以理解为 两个状态之间的有向边。 比如1001这种染色状态,经过(1 2 3)(4)的置换后,变成0101
}
2、 c1(ak)是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数(其实就是被置换ak置换过后位置不变的元素个数)
因为这句话,我之前一直误以为是不动点是: 比如置换ak=(1 2 3)(4)中的那个4 。
然而实际上。比如1001这种染色状态,经过置换ak=(1 4)(2 3)的置换后,变成1001 ,所以‘1001’这个元素是置换ak的一个不动点。
3、 轨道大小*稳定化子数=变换个数
这个的证明在博客A的最后有
。
。
。
贴一下来自博客C的式子:
Burnside引理:
对于一个置换f,若一个染色方案s经过置换后不变,称s为f的不动点。将f的不动点数目记为C(f),则可以证明等价类数目为所有C(f)的平均值。
百度百科的定义:
设G=a1,a2,…ag是目标集[1,n]上的置换群。每个置换都写成不相交循环的乘积。c1(ak)是在置换ak的作用下不动点的个数。通过上述置换的变换操作后可以相等的元素属于同一个等价类。若G将[1,n]划分成l个等价类,则:
Polya定理 :
polya定理实际上是burnside引理的具体化,提供了计算不动点的具体方法。
假设一个置换有k个循环,易知每个循环对应的所有位置颜色需一致,而任意两个循环之间选什么颜色互不影响。因此,如果有m种可选颜色,则该置换对应的不动点个数为mk。
用其替换burnside引理中的C(f),即C(f)=mk。得到等价类数目为:
其中|F|表示置换的数目,ki表示第i个置换包含的循环个数。
Burnside&Polya的更多相关文章
- POJ burnside&&polya整理练习
POJ 2409 Let it Bead 这题就是polya公式的直接套用,唯一麻烦的是置换群的种类数,由于可以翻转,所以除了要加上pow(c,gcd(s,i))这些平面旋转的置换群,还要加上翻转的. ...
- burnside+polya 整理
先定义几个含义和符号:起始状态/方法/位置/元素/:以染色为例,起始状态是所有的染色方案,方法是以起始状态所有染色方案为基准转变为新的染色情景的操作(如旋转),位置则必须是没有任何染色效果的抽象空间, ...
- Burnside&Polya总结
这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...
- Burnside&Polya总结
这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...
- bzoj1004 [HNOI2008]Cards【Burnside/Polya】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 一道好题,但并不是好在融合了三个“考点”(计数,背包dp,逆元),其实背包dp以及求逆 ...
- 等价类计数:Burnside引理 & Polya定理
提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...
- 【BZOJ】【1004】【HNOI2008】Cards
Burnside/Polya+背包DP 这道题目是等价类计数裸题吧……>_> 题解:http://m.blog.csdn.net/blog/njlcazl_11109/8316340 啊其 ...
- 2017-12 CDQZ集训(已完结)
从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了 ...
- 各种注意事项(还有c++的一些操作)
转c++时间: 2017年8月9号 1.记得打头文件 2.=与==的区别(赋值|比较) 3.各种运算符的比较级(与Pascal不同),主要是==与位运算 *4.在OJ上scanf和printf时间优于 ...
随机推荐
- [luoguP2073] 送花(set)
传送门 set #include <set> #include <cstdio> #include <iostream> #define LL long long ...
- javascript 保护变量不被随意修改------优雅的编程
/* * 1.如果在renderTitle,renderContent里面,这样总数据谁都能修改,不安全 * 改进 * 1.规定一个专门修改数据的方法,如果想修改数据只能走这个方法 * * actio ...
- 1716: [Usaco2006 Dec]The Fewest Coins 找零钱
n<=100种硬币,给每种的硬币的面额<=120和我每种有多少个<=10000,店主的硬币跟我一样但有无限个,求买t<=10000块钱的东西钱最少转手几次. 我拿的硬币最少几次 ...
- Gym 215177D 母亲节的礼物
Gym 215177D 母亲节的礼物 Problem : 给n个点m条边的无向图,每个点的度数小于等于7,要求用4种不同的颜色给每个点染色,使得每个点相邻的点中最多只有一个相同颜色的点.(n<= ...
- msp430项目编程03
msp430中项目---液晶12864显示 1.液晶12864工作原理 2.电路原理说明 3.代码(静态显示) 4.代码(动态显示) 5.项目总结 msp430项目编程 msp430入门学习
- python学习之-- 面向对象
面向对象(简写:OOP) 面向对象编程定义:利用类和对象来创建各种模型,来实现对真实世界的描述. 优点:使程序更容易理解和维护以及扩展代码. 类定义:用来描述具有相同的属性和方法的对象的集合.(简单讲 ...
- python学习之-- shelve模块
shelve模块定义:是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle(因为封装了pickle)可支持的python数据格式.功能:可以实现pickle的多次dump和多次 ...
- Codeforces 618C(计算几何)
C. Constellation time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Prime Ring Problem---hdu1016(dfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1016 这就是一道简单的dfs 但是是我自己想起来的 必须要记录一下 #include<stdio.h ...
- sys.argv的妙用:python命令行参数列表的修改、增加、删除
是否妙用取决于你怎么用 1.sys.argv是用来获取命令行参数的方法,本身是一个list.你搜其实用方法,这方面的介绍最多,这里不赘述 2.那么问题是:sys.argv可以赋值吗?可以扩充吗?可以修 ...