Burnside引理与Polya定理 学习笔记
原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html
问题模型
有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值。
如果两个序列循环同构,那么我们称这两个序列等价。
求两两不等价的序列个数。
Burnside引理
假设有若干个置换 $P_1,P_2,\cdots$ ,设由这些置换生成的置换群为 $Q$ 。如果序列 A 可以通过一个 $Q$ 中的置换变成序列 B,那么我们认为 A 和 B 等价。
对于一个置换 $P$ ,如果序列 A 经过置换 $P$ 之后不变,那么我们称序列 A 为置换 $P$ 的一个“不动点”。令 $C(P)$ 表示置换 $P$ 的不动点数。
Burnside引理:
对于一个置换群 $Q$,两两不同的序列个数为
$$\frac 1 {|Q|} \sum_{P\in Q} C(P)$$
Polya定理
Polya定理是Burnside引理的一个具体化。
Polya定理:
假设置换 $P$ 由 $k$ 个轮换组成,那么
$C(P) = m^{k}$
至此,我们已经可以解决最开始的问题模型了。
$$ans = \frac 1n \sum_{i=0}^{n-1} m ^ {\gcd(i,n)}$$
例题 - POJ2409 Let it Bead
题意
有一种项链有 $n$ 个珠子,珠子有 $m$ 种。项链是环,但是没有起始点,也没有方向。也就是说,如果两个项链循环同构或者对称翻转后循环同构,那么他们等价。
求不等价的项链种数。
$n\cdot m \leq 32$ 。
题解
这类问题,我们首先考虑一下置换群 $Q$ 中有哪些元素。
1. 旋转。可以旋转 $0\cdots n-1$ 次,故有 $n$ 种方案。这部分等价于本文开头的问题模型。
2. 翻转。由于任何形如 “旋转 + 翻转 + 旋转” 的操作都可以由一次翻转得到,所以本质上只有翻转操作。不管 $n$ 是奇数还是偶数,都有 $n$ 种本质不同的翻转操作,而且这些操作与之前的旋转也不同。
所以,置换群 $Q$ 中共有 $2n$ 种置换。
现在我们考虑求 $\sum C(P)$ 。
对于 1. 旋转,之前已经提到,这种情况对答案的贡献就是
$$\sum_{i=0}^{n-1} m ^ {\gcd(i,n)}$$
对于 2. 翻转,我们分 $n$ 的奇偶性进行讨论:
n 为奇数:只能将一个顶点与其对边中点所在直线作为对称轴进行翻转:一共有 $n$ 种方案,每种方案都由 $\frac {n+1} 2$ 个轮换构成,故对答案的贡献是
$$n \cdot m ^ {\frac {n+1} 2}$$
n 为偶数:有两种情况:
1. 以两个顶点所在直线为对称轴进行翻转:一共有 $\frac n 2$ 种方案,每种方案都由 $\frac{n+2} 2$ 个轮换构成,故对答案的贡献是
$$\frac n2 \cdot m ^ {\frac {n+2} 2} $$
2. 以两条边的中点所在直线为对称轴进行翻转:一共有 $\frac n 2$ 种方案,每种方案都由 $\frac{n} 2$ 个轮换构成,故对答案的贡献是
$$\frac n2 \cdot m ^ {\frac {n} 2} $$
至此,问题解决。
代码
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
typedef long long LL;
int n,m;
LL Pow(LL x,LL y){
LL ans=1;
for (;y;y>>=1,x*=x)
if (y&1)
ans*=x;
return ans;
}
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int main(){
while (1){
cin>>m>>n;
if (!n&&!m)
break;
LL ans=0;
for (int i=0;i<n;i++)
ans+=Pow(m,gcd(n,i));
if (n&1)
ans+=Pow(m,(n+1)>>1)*n;
else {
ans+=Pow(m,n>>1)*(n>>1);
ans+=Pow(m,(n+2)>>1)*(n>>1);
}
ans/=n<<1;
cout<<ans<<endl;
}
return 0;
}
Burnside引理与Polya定理 学习笔记的更多相关文章
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
- Burnside引理与Polya定理
感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...
- Polya 定理 学习笔记
群 群的定义 我们定义,对于一个集合 \(G\) 以及二元运算 \(\times\),如果满足以下四种性质,那我们就称 \((G,\times)\) 为一个群. 1. 封闭性 对于 \(a\in G, ...
- 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的作用下不动 ...
随机推荐
- spring boot简单的小demo(适合于初学者)
import com.example.demo2.com.example.dao.ShopDao; import com.example.demo2.com.example.entity.Shops; ...
- FastDFS分布式文件系统客户端安装
软件安装前提:服务器已配置好LNMP环境安装libfastcommon见FastDFS服务器安装文档(http://www.cnblogs.com/Mrhuangrui/p/8316481.html) ...
- 洛谷 P3455&BZOJ1101 【[POI2007]ZAP-Queries】
这应该是入坑莫比乌斯反演的第一道题了吧 其实题目让我们求的东西很简单,就是 \[ ans=\sum_{i=1}^{a}\sum_{j=1}^{b}\left [ gcd(i,j)=k \right ] ...
- python之OpenCv(五)---抓取摄像头视频图像
OpenCV 可以通过 头videoCapture()方法打开摄像 摄像头变量 = cv2.VideoCapture(n) n为整数,内置摄像头为0,若有其他摄像头则依次为1,2,3,4,... ...
- HTML-Note
<meta>在 HTML 5 中,有一个新的 charset 属性,它使字符集的定义更加容易. charset character encoding 定义文档的字符编码. e.g. < ...
- Git 分支 (三) 分支管理&&分支开发工作流
分支管理 git branch 命令不只是可以创建与删除分支. 如果不加任何参数运行它,会得到当前所有分支的一个列表: 注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当 ...
- Linux运维(首页)
系统学习,以此见证学习历程 Linux运维基础 安装vmware+centos Linux基础 Linux的一些问题 Ubuntu遇到的bug linux_网易云音乐安装 linux_添加图标 遇到的 ...
- [物理学与PDEs]第1章习题5 偶极子的电场强度
试计算由习题 4 给出的电偶极子的所形成的电场的电场强度. 解答: $$\beex \bea {\bf E}(P)&=\cfrac{1}{4\pi\ve_0} \sez{\cfrac{-q}{ ...
- 🍓 vue循环渲染本地图片不显示? 🍓
teamList: [{ title: '大数据拍牌', imgUrl: './img/data.jpg', introduce: '5星服务:强烈推荐', cost: '15000', bail: ...
- 常用window命令
1. 关闭端口占用程序 先查看端口(8080)占用程序 netstat -ano | findstr 显示结果如下 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1066 ...