Problem
起源:
SGU 294 He’s Circle
遗憾的是,被吃了。
Poj有道类似的:
Mission
一个长度为n(1≤n≤24)的环由0,1,2组成,求有多少本质不同的环。
实际上,如果使用高精度,那么n可以到1e6级别
群
定义
一个集合G,以及一个二元运算∗。
并且满足:
封闭性
如果a∈G,b∈G,那么a∗b∈G
结合律
如果a∈G,b∈G,c∈G,那么a∗b∗c=a∗(b∗c)
存在单位元
存在c∈G,使得b∗c=c∗b=c
那么c就称为G的单位元。
类似于加法运算中的0,乘法运算中的1。
逆元
对于任意a∈G,都有a−1使得a∗a−1=a−1∗a=c
其中c是单位元。
那么a−1就称为a的逆元。
不一定满足交换律
我们称呼包含n个元素的有限群为n阶群。
置换
置换相当于一个排列的一一映射。
例如:
(14233241) (13223441) (23423411)
是置换,而
(52332411)
就不是置换。
置换群
由置换组成的集合,运算是置换的连接。
置换的连接
例子:
(12233441)∗(12233441)=(12233441)∗(23344112)=(13243142)
正片开始
Burnside引理
已知一个n阶置换群a;
求在其作用下有多少种本质不同的染色方案Ans。
结论
其中D(ai)表示在第i个置换的作用下,
有多少个染色方案置换后不变。
Back to the Problem
一个长度为n(1≤n≤24)的环由0,1,2组成,求有多少本质不同的环。
我们考虑构造这样的n阶置换群:
每一种旋转都当作是一个置换,那么就有n个置换,就构成个群。
例如,旋转k个元素,对应的置换为:
利用burnside引理,
我们可以先枚举出所有的3n染色方案,然后判断有多少种旋转可以使它旋转后不变。
但这显然是时间超限的。
我们需要进一步找出更好的性质。
Pólya计数法
循环
定义n阶循环是一种置换满足,
用循环表示旋转
题目中的,假设n=4:
那么置换群就有,以下四种置换:
用旋转表示置换,通俗地,例如:
简单来讲就是,类似于环状的东西。
我们用C(ai)表示ai存在多少个循环:
简单起见,
我们称循环里编号最小的珠子的编号,为循环的起始位置。
结论
处于同一循环的珠子的颜色必须是相同的,才能使得置换后不变
显然,证明略;
这样可以简化burnside引理的对于D(ai)运算。
但仍然不够,需要更特殊的性质。
专门针对旋转的Pólya计数法
旋转i个珠子对应的置换共有gcd(n,i)个循环,且其中每个循环的起始位置都依次相邻
证明:
设第u个珠子与第v个珠子处于同一个循环之中;
x,y是未知数。
则有
裴蜀定理:ax+by=c,那么gcd(a,b)|c,其中a,b,x,y,c都是质数。
由裴蜀定理,
想要令u和v不在同一循环中的话,
v−u就有0..gcd(n,i)−1这gcd(n,i)种取值,
且取值都是连续的。
所以,共有gcd(n,i)个循环的起始位置,且其中每个循环的起始位置都依次相邻。
得证。
True Back
有了这个特殊的性质,这道题就躺着做。
由,同一置换中,每个循环都可以染3种颜色,则有