polya计数定理在ACM-icpc中的应用

【数学公式】

PG(x1,x2,...,xn) = 1/|G| * ∑π∈G x1^b1 * x2^b2*...*bn^bn   其中π是1^b12^b2...n^bn型轮换

然后一般染色情况下x1=x2=...=xn = m

于是就有了ans = 1/|G|*∑π∈Gm^c(π) 其中c(π)是置换π的轮换(也叫循环节)个数。

【算法应用】

对于算法题来说,问题的关键是计算c(π)这个函数。

一种方法是模拟构造每一个置换,然后用函数计算对应的轮换个数。

还有一种方法就是找规律,用套路,然后直接计算。

【题型】

1.项链(n次二面体)

    1/|G|∑(phi(L) * M^(N/L) )   O(√n)枚举长度L

    1/|G|∑(M^gcd(i,n))  O(n)枚举置换标号i

  上面都是不可翻转的,可翻转的分奇偶讨论一下。

2.正八面体点着色

  置换群元素24个。

  m着色总数为 (m^8+17m^4+6m^2)/24

3.正四面体点着色

  置换群元素12个

  m着色总数为(m^4+11m^2)/12

 

posted @ 2016-08-30 21:30  Helica  阅读(785)  评论(0编辑  收藏  举报