因为数学渣,Polya定理不是很清楚,但其实际操作大概如下。
解释下上图。
N个位置,K种颜色放置。
x1,x2,x3,x4,……,xn
(x1,x2,x3……xn)∈{1 2 3 4 …… K}
则
放置总数为上图
|G| 是【所有的(被定义的)置换(也就是变化的方式)】的个数
——被定义就是说,某变化为M,任意情况A经过变化M变为B,A和B算作同一种情况。
k就是K
c(f) 是【某种置换的循环节】:
——这是什么意思的
比如说
3种颜色(K==3)
1 2 3 4 四个位置
我定义【旋转变化】和【不变】是同一种情况(注意,不变也算是一种【变化】,因为不变之后等效于原来)
【不变】就是 【1 to 1】【2 to 2】【3 to 3】【4 to 4】有四个【】,所以c(f)算作4
【旋转】分为几种分别是
【转一次】——【1 to 2】【2 to 3】【3 to 4】【4 to 1】这个【】可以合并为【 1 to 2 to 3 to 4 to 1】 所以 从c(f)=1;
【转两次】——【1 to 3】【2 to 4】【3 to 1】【4 to 2】这个【】可以合并为【 1 to 3 to 1】【2 to 4 to 2】 所以 从c(f)=2;
【转三次】——【1 to 4】【2 to 1】【3 to 2】【4 to 3】这个【】可以合并为【 1 to 4 to 3 to 2 to 1】 所以 从c(f)=1;
PS:如果把【不变】不单独算,而是算作【转四次】的话
【转四次】——【1 to 1】【2 to 2】【3 to 3】【4 to 4】这个【】不能合并 所以 从c(f)=4;
所以总可能数
就是
K^(1+2+1+4)/4==24
POJ 1286
除去上面的【旋转】和【不变】
再多一个【翻转】操作
对于n个数
n 为奇数
共 n 种翻转,每种 的 c(f)==(n+1)/2
n为偶数
n/2 种 c(f)==n/2
n/2 种 c(f)==n/2+1
具体代码可自行度娘