题目:pku2409
题意:本题的简化版为pku1286,是用c种颜色不同的珠子,可以造多少种不同的长度为s的手链。
方法:置换群和POLYA定理
介绍:
设G是N个对象上的置换群,用M种颜色涂染这N个对象,则不同的染色方案数为:
LG =( Mλ(g1)+Mλ(g2)+…+Mλ(gp))/|G|
其中G=(g1,g2, …gp), λ(gk)为置换gk的轮换的个数。
注意:
l 置换中轮换的个数和轮换的长度求解。
l 置换群中元素的介的求法。
l 优化问题等等。
*旋转:N个点顺时针(或逆时针)旋转i个位置的置换,轮转个数为gcd(N, i)
*翻转:
1.当N为偶数时:
对称轴不过顶点:轮转个数为N/2
对称轴过顶点:轮转个数为N/2+1
2.当N为奇数时,轮转个数为(N+1)/2
代码:参考SHP00001