[学习笔记]置换群

[学习笔记]置换群_第1张图片

这是群论

置换群是群论的一种:
必须要知道的:

置换群和Burnside引理,Polya定理

 

理解一下

这里置换就是旋转同构的表示,方案就是“染色方案”

m种置换,假如所有可能的方案,每种同构的方案都算了m次。(每种置换都有一次),那么直接除以m即可。

但是有的方案并没有被计算m次。例如旋转同构的11111只计算了1次。

为了都出现m次,保证能直接除法,就把少算的加上,最后除以m

burnside引理的思想就是这样。

更具体地,我们称不动点表示一个置换下置换前后不动的方案。

显然对于每个置换的不动点,那么这个不动点会在总方案中少出现一次(起码这个置换不会多一次),就要补上1

所以,

本质不同的“染色方案”,就是每个置换下不动点的个数除以置换数。

 

polya定理相当于一个辅助。

对于每个置换下的不动点个数提供了计算方法:

=颜色^环个数

环就是一个连等式。移动到的位置和自身必须相等。

当然,这只是对于颜色可以随便填的情况可以直接算。

对于不能随便填的情况,polya定理也给我们提供了思路:每个环每个环相对独立地考虑。

例题:

Let it Bead

[ACM] POJ 2409 Let it Bead (Polya计数)

基础题。

置换只有n种旋转(包括元置换),和翻转。

对于翻转,奇偶讨论一下环个数即可。

旋转i次,环个数gcd(n,i),环长都是n/gcd(n,i)

ax=0 mod y 所以ax=ty=lcm(x,y) 所以a=lcm(x,y)/x=y/gcd(x,y)

每个环都相等,所以环个数:gcd(n,i)

统计不动点之和。再除以置换数

 

如果都是这样的题就没有意思了

出题人会在置换的枚举和不动点的计算上设计麻烦。

1.置换的枚举优化:一些置换本质上是一样的:环的种类个数都一样。对于旋转同构可以枚举gcd,对于n!的完全置换,可以自然数拆分(n不能太大<=80)

因为本身统计不动点也是和环有关系。环的组合就少了很多

2.不动点的枚举:一般还是考虑从环入手,环内部的,环之间的有时都要考虑。题目的一些要求会对每个环内颜色的填法,不是非常无脑,就要额外进行特殊处理了。经常用到dp

 

Magic Bracelet

 poj 2888 Magic Bracelet

灵活统计

 

hdu 5868 Different Circle Permutation

上一题的弱化版。

 

[HNOI2008]Cards

[HNOI2008]Cards

 

 SGU - 282

好题。比较灵活运用了burnside引理和polya定理的思想。

 

 

[HNOI2009]图的同构记数

上题削弱版。

相当于每个边有两种颜色。有或者没有。

 

 

 

配赠福利:

 

二维旋转同构(旋转一行或者一列,共n×m种置换)

对于右移i个,下移j个:
环个数n×m/lcm(n/gcd(i,n),m/gcd(j,m))
枚举a=n/gcd(i,n)和b=m/gcd(j,m)
方案数乘上:phi(a)phi(b)
复杂度:O(约数个数×约数个数)

大概一个环长这样子:

[学习笔记]置换群_第2张图片

 

转载于:https://www.cnblogs.com/Miracevin/p/10217849.html

你可能感兴趣的:([学习笔记]置换群)