burnside引理+polya计数法小结

来源:互联网 发布:图片识别字体软件 编辑:程序博客网 时间:2024/06/07 05:38

WC上wwwwodddd讲的整数和多项式相关里面最后又burnside引理的一部分
被生成函数调戏疯了的我突然断线重连
坐在礼堂最后一排的沙发位上和老黄人疯狂口糊
不过听课的时候想的不是很细,重新整理了一发
这里写图片描述
大概就是

=1cnti=0i

至于polya计数法就是求置换i下不变的方案数,将它理解为:把置换拆成若干个循环,每个循环显然要染一样的颜色,那么方案数=颜色个数^循环个数

bingo,题目走起

Problem1 Path

  • 在一个 n×n 的网格中,从左下角到右上角,每次向上或者向右 走一格,一共需要向右走 n 次,向上走 n 次。输入 n(1 ≤ n ≤
    10^6),问本质不同的方案有多少种。结果对 p = 10^9 + 9 取模。
    如果两个方案可以通过对称和旋转变成相同的,我们认为他们本质相同。

解法:路径可以表示成长度为2n的01串,即每一步向上或者向右,对称即对这个01串翻转,或者对这个01串按位取反(注意这个是可以写成置换形式的)。对于种置换分别讨论:
1、不翻转不取反,方案数=Cn2n
2、翻转不取反,如果要不变那么i和n-i+1位要相同,把01串折半考虑即可,方案数=Cn2n,若01串长度为奇数则为0
3、不翻转 取反,这怎么可能相同啊,方案数为0
4、翻转且取反,同样折半考虑,第i和第n-i+1位不同,01个数总是相等的,所以任意半个01串翻折取反后都是合法的,方案数为2n
burnside引理,上面四个加起来除以四就行了

Problem2 Ring

  • 一个由 n(2 ≤ n ≤ 10^9) 个珠子组成的环,我们要将所有珠子染 成 c(1 ≤ c ≤ 10^9)
    种颜色之一。问存在多少种本质不同的方案, 结果对 10^9 + 7 取模。 当两种方案通过旋转后变得相同时,我们认为他们本质相同。
    但是不能翻转。

观察置换,会发现移动p1位的置换存在ngcd(p,n)个循环节,根据burnside引理,ans=1nni=1cngcd(p,n),把它写成欧拉函数的形式ans=1nd|nϕ(nd)cd,枚举约数的时间代价就能求出来。

Problem3 Ring

  • 一个由 n(2 ≤ n ≤ 109) 个珠子组成的环,我们要将所有珠子染 成 黑白两种颜色。但是黑色不能相邻,问有多少种本质不同的
    方案,结果对 109 + 7 取模。 当两种方案通过旋转后变得相同时,我们认为他们本质相同。 但是不能翻转。

ans=1nd|nϕ(nd)fd
其中fd为长度为d的合法方案数,计算方法为f1=1f2=3fn=fn1+fn2
讲题的时候和老黄人已经想出来解法,但是不会证,满心期待地准备听证明结果讲踢人略过去。回来之后大概想了一下,大概是如果要放一个白色的球,那么方案数为fn1,若放一个黑色的球,上一个结尾如果是黑色球的话那么我们这次放白球+黑球,上一个结尾如果是白色球的话我们这次放黑球+白球,方案数为fn2,得到转移fn=fn1+fn2

Problem4 Face

  • 一个由 n×m 的矩形,我们要用他非常正常地密铺整个平面, 我们要将所有格子染成 c 种颜色。问有多少种本质不同的方案, 结果对 10^9+7 取模。 当两种方案看起来一样时,即矩形通过循环平移时一样,我们认 为他们本质相同。 1 ≤ n ≤ 109,1 ≤ m ≤ 109,1 ≤ c ≤ 10^9

嗯这是一个矩阵,所以它的置换也是一个矩阵,这个矩阵也是可以找循环节的,两维分别位移a和b个单位的时候,矩阵的循环节为nmlcm(a,b),直接套用burnside引理ans=1nmna=1mb=1cnmlcm(a,b),写成欧拉函数形式化简为ans=1nma|nb|mϕ(na)ϕ(mb)cnmlcm(a,b)

Problem5 Face

  • 一个由 n×m 的矩形,我们要用他非常正常地密铺整个平面, 我们要将所有格子染成 c 种颜色。输入 n,m,c 和一个长度为 c 的排列
    p。问有多少种本质不同的方案,结果对 10^9 + 7 取模。 问有多少种方案,将第 i 种颜色替换为 pi 之后看起来是一样的。
    (因为会密铺整个平面,所以即使交换两种颜色,他看起来还是 有可能和原先一模一样。)
    换句话说,我们问有多少本质不同的方案,满足交换颜色之后, 存在一种平移方式和自己相等。这句话中的本质不同是指两种方
    案如果通过平移可以互相得到那么我们算作一种。 1 ≤ n,m ≤ 10^9,1 ≤ c ≤ 16

可以发现颜色本身也是一个置换,将它写成循环节的形式,令d[cnt]表示循环节的长度,那么取长度为x的颜色方案可以写成一个函数:
这里写图片描述
大概理解为:回顾polya计数法,每个置换里面需要染相同的颜色,而这里,若整体选取颜色循环节我们都认为他是同一种颜色
继续套用上面那题的公式即可ans=1nma|nb|mϕ(na)ϕ(mb)c(lcm(a,b))nmlcm(a,b)

Problem 6 Wool

  • 一个由 n×m 的矩形,我们要用他非常正常地密铺整个平面,我 们要将所有格子染成 c 种颜色。但是 B 君是一个色盲,B 君只
    能判断两种颜色是否相同,而无法判断出每种颜色具体是什么。 输入 n,m,c。问有多少种本质不同的方案,结果对 10^9 +7 取模。
    当两种方案看起来一样时,即矩形通过循环平移时一样,或者将 颜色重新标号,我们认为他们本质相同。 1 ≤ n,m ≤ 10^9,1 ≤ c
    ≤ 16

上一题给了循环节,这一题没给,怎么办
自己把颜色数分解成循环就好了咯,16的拆分数为231
最后套用burnside对这些置换取平均值即可

冬令营考得好龊,诶

0 0