摘要: polya计数+eular函数输入n,p;(n<=1e9,p<=30000);n个珠子行成一个圆链,有n种颜色的珠子,各种颜色都为无穷大,旋转后一样的珠子为同一种,求不同链子的总数。听起来就是普通的polya计数,不过一看n=1e9,太大了没办法枚举。先说一下polya计数:涉及置换群,m种颜色涂染n个物体。不同染色方案数L=(m^c(g1)+m^c(g2)+..+m^c(gs))/|G| gs为置换的方法,这题就是旋转1,2..n格,c^(g1)为循环节数,即置换后形成的环的个数;|G|为置换方法总数;这里为n。然后直接给结论吧:旋转:旋转k个位置时循环节数为gcd(n,k); 阅读全文
posted @ 2012-11-26 00:34 _hikaru__ 阅读(470) 评论(0) 推荐(0) 编辑