zoukankan      html  css  js  c++  java
  • [学习笔记]置换群

    这是群论

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

    置换群和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(约数个数×约数个数)

    大概一个环长这样子:

  • 相关阅读:
    爬虫框架概述
    Django【进阶篇 】
    Django【基础篇】
    【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现
    刷题记录:[安洵杯 2019]easy_serialize_php
    刷题记录:[SWPU2019]Web1
    2019-2020-1 20175210 20175211 20175219 实验五 通讯协议设计
    2019-2020-1 20175210 20175211 20175219 实验三 实时系统
    2019-2020-1 20175210 20175211 20175219 实验四 外设驱动程序设计
    2019-2020-1 20175210 20175211 20175219 实验二 固件程序设计
  • 原文地址:https://www.cnblogs.com/Miracevin/p/10217849.html
Copyright © 2011-2022 走看看