Burnside引理
参考了神仙gzy的博客
置换:把一个排列变成另外一个排列,简单来说就是一一映射。
置换群:置换的集合。
置换即给定一个排列\({f_1,f_2,...,f_n}\),若其作用在一个排列上,则这个排列置换后的第\(i\)个位置上的数变为置换前的第\(f_i\)个位置上的数,实质是一个从一个排列到另一排列的一一映射。
置换之间可以进行乘法
置换可以分解成若干循环的乘积
以上两点可参考gzy的博客,其中第二点是等价类计数中常用的方法,在我有关排列计数的文章中会提到
Burnside引理
设G为置换集合,且对于任意\(f,g\in G\),有\(fg\in G\)
\(C(f)\)为置换\(f\)的不动点个数,即一个排列进行置换\(f\)后还是这个排列
L为置换\(G\)下等价类个数,若排列a可以通过G中的置换得到b,则a,b属于同一等价类
有
\[L=\frac{\sum_{f\in G}C(f)}{|G|}\]
证明:
设\(Z_i\)为使\(i\)为不动点的置换集合大小,\(E_i\)为第\(i\)个等价类的大小。
则
\[\sum_{f\in G}C(f)=\sum_{i=1}^{n}Z_i\]
又因为对于一个等价类\(j\),其中所有点\(i\)的\(Z_i\)都相等,设其为\(H_j\)
则
\(\sum_{i=1}^{n}Z_i=\sum_{i=1}^{L}E_iH_i\)
又因为每一个点经过\(G\)中的任意一个置换都会置换到它所在的等价类中的一个点,而置换到每一个点都有\(H_i\)种不同的置换方式
所以
\[|G|=E_iH_i\]
\[\therefore \sum_{i=1}^{n}Z_i=\sum_{i=1}^{L}|G|=L|G|\]
即
\[\sum_{f\in G}C(f)=L|G|\]
所以
\[L=\frac{\sum_{f\in G}C(f)}{|G|}\]
引理得证。
Polya定理也可以用Burnside引理证出来,详细可见Polya定理模板
Burnside引理的更多相关文章
- [bzoj 1004][HNOI 2008]Cards(Burnside引理+DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 分析: 1.确定方向:肯定是组合数学问题,不是Polya就是Burnside,然后题目上 ...
- POJ 2888 Magic Bracelet(Burnside引理,矩阵优化)
Magic Bracelet Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 3731 Accepted: 1227 D ...
- BZOJ 1004 Cards(Burnside引理+DP)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1004 题意:三种颜色的扑克牌各有Sr,Sb,Sg张.给出m种置换.两种染色方案在某种置换 ...
- BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 共n个卡片,染成r,b,g三种颜色,每种颜色的个数有规定.给出一些置换,可以由置换得到的 ...
- [BZOJ 1004] [HNOI2008] Cards 【Burnside引理 + DP】
题目链接:BZOJ - 1004 题目分析 首先,几个定义和定理引理: 群:G是一个集合,*是定义在这个集合上的一个运算. 如果满足以下性质,那么(G, *)是一个群. 1)封闭性,对于任意 a, b ...
- BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i, ...
- BZOJ 1004 HNOI2008 Cards Burnside引理
标题效果:特定n张卡m换人,编号寻求等价类 数据保证这m换人加上置换群置换后本身构成 BZOJ坑爹0.0 条件不那么重要出来尼玛怎么做 Burnside引理--昨晚为了做这题硬啃了一晚上白书0.0 都 ...
- HDU 5868 Different Circle Permutation(burnside 引理)
HDU 5868 Different Circle Permutation(burnside 引理) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=586 ...
- 置换群、Burnside引理与等价类计数问题
置换群.Burnside引理与等价类计数问题 标签: 置换群 Burnside引理 置换 说说我对置换的理解,其实就是把一个排列变成另外一个排列.简单来说就是一一映射.而置换群就是置换的集合. 比如\ ...
- 【BZOJ1004】Cards(组合数学,Burnside引理)
[BZOJ1004]Cards(组合数学,Burnside引理) 题面 Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Su ...
随机推荐
- windows 的一些快捷键
https://www.zhihu.com/question/276786944/answer/698967240 1.新建文件夹 Ctrl + Shift + N 或者鼠标右键 然后 ...
- [转帖]从零开始入门 K8s | 手把手带你理解 etcd
从零开始入门 K8s | 手把手带你理解 etcd https://zhuanlan.zhihu.com/p/96721097 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 KV 存储系 ...
- day05——字典
day05 字典 字典-- dict: 字典无序的,可变的数据类型 用于存储大量数据,字典要比列表快,将数据和数据之间进行关联 lst1 = ['常鑫','李文虎','张宇'] # 姓名 lst2 = ...
- 不依赖Spring使用AspectJ达到AOP面向切面编程
网上大多数介绍AspectJ的文章都是和Spring容器混用的,但有时我们想自己写框架就需要抛开Spring造轮子,类似使用原生AspectJ达到面向切面编程.步骤很简单,只需要两步. 1.导入依赖 ...
- python--unittest测试框架
unittest中最核心的四个概念是:test case, test suite, test runner, test fixture
- 秋招打怪升级之路:十面阿里,终获offer!
本文转载自:https://gongfukangee.github.io/2019/09/06/Job/ 作者:G.Fukang 开源项目推荐: JavaGuide: Java学习+面试指南!Gith ...
- Qt QVector简单用法
添加元素 QVector<QString> strArray; strArray.append("Hello"); 遍历 QVector<QString>: ...
- group by 两个字段
group by 的简单说明: group by 一般和聚合函数一起使用才有意义,比如 count sum avg等 使用group by的两个要素: (1) 出现在select后面的字段 要么 ...
- 使用gacutil把COM组件注册到全局缓存GAC中
我们在编写软件的时候,有时候需要调用COM组件,那就需要注册了,注册有两种,一种是使用regasm 在程序运行的时候注册,参考“pb调用C#编写的DLL类库“,不过受路径的限制.还有一种注册方式,使用 ...
- OSI、TCP/IP
计算机网络分层的目的:支持异构网络系统的互联互通 7层OSI参考模型是法定标准(国际标准化组织ISO提出) 4层TCP/IP参考模型是事实标准 OSI参考模型 应用层.表示层.会话层.传输层.网络层. ...