polya定理。等价类的个数等于∑颜色数^置换的轮换个数

不可翻转的串当中。直接计算∑m^(gcd(n,i)) ,这里gcd(n,i)就是第i个置换的轮换数。

翻转的情况再分n奇偶讨论。

n次二面体都是这个套路。

  1. /*--------------------------------------------------------------------------------------*/
  2.  
  3. #include <algorithm>
  4. #include <iostream>
  5. #include <cstring>
  6. #include <ctype.h>
  7. #include <cstdlib>
  8. #include <cstdio>
  9. #include <vector>
  10. #include <string>
  11. #include <queue>
  12. #include <stack>
  13. #include <cmath>
  14. #include <set>
  15. #include <map>
  16.  
  17. //debug function for a N*M array
  18. #define debug_map(N,M,G) printf("\n");for(int i=0;i<(N);i++)\
  19. {for(int j=;j<(M);j++){\
  20. printf("%d",G[i][j]);}printf("\n");}
  21. //debug function for int,float,double,etc.
  22. #define debug_var(X) cout<<#X"="<<X<<endl;
  23. #define LL long long
  24. const int INF = 0x3f3f3f3f;
  25. const LL LLINF = 0x3f3f3f3f3f3f3f3f;
  26. /*--------------------------------------------------------------------------------------*/
  27. using namespace std;
  28.  
  29. int N,M,T;
  30. const LL MOD = 1e9+;
  31.  
  32. LL pow_mod(LL x,LL cnt)
  33. {
  34. LL base = x,res = ;
  35. while(cnt)
  36. {
  37. if(cnt&) {res*=base;res%=MOD;}
  38. base *= base;base %= MOD;
  39. cnt >>= ;
  40. }
  41. return res%MOD;
  42. }
  43. LL inv(LL x,LL m)
  44. {
  45. return pow_mod(x,m-);
  46. }
  47. LL polya(LL n,LL m)
  48. {
  49. LL res = ;
  50. for(int i=;i<=n;i++)
  51. {
  52. res += pow_mod(m,__gcd((LL)i,n));
  53. res %= MOD;
  54. }
  55.  
  56. if(n&) res += n*pow_mod(m,n/+);
  57. else res += (n*pow_mod(m,n/))%MOD*inv(,MOD)%MOD + (n*pow_mod(m,n/+))%MOD*inv(,MOD)%MOD ;
  58.  
  59. res %= MOD;
  60. res *= inv(*n,MOD);
  61.  
  62. return res%MOD;
  63. }
  64.  
  65. int main()
  66. {
  67. scanf("%d",&T);
  68. int cas = ;
  69. while(T--)
  70. {
  71. scanf("%d%d",&M,&N);
  72. printf("Case #%d: %lld\n",++cas,polya(N,M));
  73. }
  74. }

HDU3923-Invoker-polya n次二面体的更多相关文章

  1. HDU 3923 Invoker(polya定理+乘法逆元(扩展欧几里德+费马小定理))

    Invoker Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 122768/62768K (Java/Other) Total Subm ...

  2. HDU 3923 Invoker(polya定理+逆元)

    Invoker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 122768/62768 K (Java/Others)Total Su ...

  3. HDU 3923 Invoker 【裸Polya 定理】

    参考了http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove 的模板 对于每一种染色,都有一个等价群,例如旋转, ...

  4. POJ2154 Color【 polya定理+欧拉函数优化】(三个例题)

    由于这是第一天去实现polya题,所以由易到难,先来个铺垫题(假设读者是看过课件的,不然可能会对有些“显然”的地方会看不懂): 一:POJ1286 Necklace of Beads :有三种颜色,问 ...

  5. 《程序设计中的组合数学》——polya计数

    我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...

  6. Polya计数

    Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5365   Accepted: 3585 Descr ...

  7. [ACM] hdu 3923 Invoker (Poyla计数,高速幂运算,扩展欧几里得或费马小定理)

    Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael ...

  8. polya/burnside 学习

    参考链接: http://www.cnblogs.com/hankers/archive/2012/08/03/2622231.html http://blog.csdn.net/raalghul/a ...

  9. 【转】Polya定理

    转自:http://endlesscount.blog.163.com/blog/static/82119787201221324524202/ Polya定理 首先记Sn为有前n个正整数组成的集合, ...

随机推荐

  1. ASCII

    0. American Standard Code of Information Interchange 美国信息交换标准码, 即ASCII, 定义表如下: Bin(二进制) Oct(八进制) Dec ...

  2. Oracle定义varchar2()类型存储汉字的长度问题

    varchar2最大是4000字节,那么就看你的oracle字符集:(select userenv('language') from dual;)如果字符集是16位编码的,ZHS16GBK,那么每个字 ...

  3. !!!jQuery中事件绑定 推荐使用.delegate()或者live()

    jQuery中的.bind()..live()和.delegate()之间区别分析 参考:http://www.jb51.net/article/27309.htm DOM树   首先,可视化一个HM ...

  4. Support for AMD usage of jwplayer (require js)

    使用require js 模块化代码时,其中播放器用的是jwplayer7.x 然后载入jwplayer.js后总是报license无效(license已经加入),最后在jwplayer官网论坛里找到 ...

  5. shell读取文件每一行的方式

    1.使用read命令读取一行数据 while read myline do echo "LINE:"$myline done < datafile.txt 2.使用read命 ...

  6. textarea文本简单样式编辑

    第一种方法采用替换:就是将文本域的换号符号\r\n,替换成其他符号,存入数据库,然后显示的时候再转换回来: //转换换行符$str=preg_replace("/\r\n|\r|\n/&qu ...

  7. Mongodb 主从复制与副本集实验

    1.实验主从复制,并验证复制成功,抓图实验过程  Step1:创建相应的目录 Mkdir -p ./dbs/master Mkdir -p ./dbs/slave Step2:开启主服务 ./bin/ ...

  8. 对"构建之法“的理解和困惑

    对"构建之法"的理解和困惑        本人"学沫沫"一个,对于之前的编程学习虽不大"感冒",但秉着对自己负责的态度进行了基础学习.   ...

  9. 《TCP/IP详解 卷一》读书笔记-----动态路由协议

    1.以下条件只要有一个不满足,则需要使用动态路由协议:1)网络规模小,2)只有一个连接点用于连接其他网络,3)没有冗余的路由器(一般用作备份) 2.所谓动态路由就是各个路由器与自己相邻的路由器交换各自 ...

  10. 边工作边刷题:70天一遍leetcode: day 71

    Longest Substring with At Most Two Distinct Characters # Given a string, find the length of the long ...