Polya 计数
View Code
/*==================================================*\ | Polya计数 | c种颜色的珠子, 组成长为s的项链, 项链没有方向和起始位置; \*==================================================*/ // 注意超long long int Polya(int c,int s) { int i,j,k,p[64], count; p[0]=1; // power of c for(k=1; k<=s ;k++) p[k]=p[k-1]*c; //reflection part count=(s&1)? (s*p[s/2+1]) : ((s/2)*(p[s/2]+p[s/2+1])); //rotation part for(k=1; k<=s ;k++) count+=p[gcd(k,s)]; cout/=2*s; return count; }