<题目链接>

题目大意:
用k种颜色对n个珠子构成的环上色,旋转、翻转后相同的只算一种,求不等价的着色方案数。

解题分析:

对于这种等价计数问题,可以用polay定理来解决,本题是一道polay定理的模板题。

具体polay定理的实现步骤如下(选自算法入门经典训练指南  147页):

#include<iostream>
#include<stdio.h>
using namespace std;
typedef long long LL;
int n, m;int gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);
}LL pow(LL a, LL b) {       //快速幂
    LL ans;for (ans = 1; b; b >>= 1) {if (b & 1)ans *= a;a *= a;}return ans;
}int main() {int i, j;while (scanf("%d%d", &m, &n) ,n||m) {LL ans = 0;//旋转的情况 for (i = 0; i < n; i++)ans = ans + pow((LL) m, (LL) gcd(n, i));      //注意这里不用乘以n//翻转的情况if (n & 1)ans += n * pow((LL) m, (LL) n / 2 + 1);            //若n为奇数,以一个顶点和另外一条边中点的连线为对称轴elseans += n / 2 * (pow((LL) m, (LL) n / 2) + pow((LL) m, (LL) n / 2 + 1)); //n为偶数时,以两个顶点连线为对称轴  和  以两个顶点之间的连线为对称轴的情况
        printf("%lld\n", ans /(2*n));       //(2*n)==n+n(n为奇数)或者是n+(n/2+n/2)
    }return 0;
}

2018-08-11

转载于:https://www.cnblogs.com/00isok/p/9460870.html

POJ 2409 Let it Bead【Polya定理】(模板题)相关推荐

  1. POJ 2409 Let it Bead (Polya定理)

    题意 用k种颜色对n个珠子构成的环上色,旋转翻转后相同的只算一种,求不等价的着色方案数. 思路 Polya定理 X是对象集合{1, 2, --, n}, 设G是X上的置换群,用M种颜色染N种对象,则不 ...

  2. poj 2409 Let it Bead Polya计数

    旋转能够分为n种置换,相应的循环个数各自是gcd(n,i),个i=0时不动,有n个 翻转分为奇偶讨论,奇数时有n种置换,每种有n/2+1个 偶数时有n种置换,一半是n/2+1个,一半是n/2个 啃论文 ...

  3. 置换群Polya定理(poj 2409: Let it Bead)

    可以先看 置换群burnside引理(bzoj 1004: [HNOI2008]Cards) Polya定理公式(必须在没有限制下才能使用此公式): 其中|G|为总置换数,m表示可用的颜色数,c(gi ...

  4. POJ 1330 Nearest Common Ancestors 【LCA模板题】

    任意门:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000 ...

  5. POJ - 3714 Raid(平面最近点对模板题,几何)

    题目链接:点击查看 题目大意:给出两个含有n个点的集合,在两个集合中分别任选一点,使得这两个点之间的距离最小 题目分析:因为n给到了1e5,所以n*n的暴力肯定是不行了,直接从网上copy了个分治优化 ...

  6. 洛谷 - P6178 【模板】Matrix-Tree 定理(矩阵树定理模板题)

    题目链接:点击查看 题目大意:给出一张 n 个点 m 条边组成的图,可能是有向图也可能是无向图,定义生成树的权值为所有边权的乘积: 如果是无向图,求所有生成树的权值之和 如果是有向图,求所有以点 1 ...

  7. 最短路 思维转换 POJ 3159需要深刻理解题意的模板题

    Candies Description: 在幼儿园的时候,Flymouse是班上的班长.有时班主任会给班上的孩子们带来一大袋糖果,让他们分发.所有的孩子都非常喜欢糖果,经常比较他们和别人买的糖果的数量 ...

  8. 解题报告 (五) Burnside引理和Polya定理

    Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...

  9. poj2154 Color ——Polya定理

    题目:http://poj.org/problem?id=2154 今天学了个高端的东西,Polya定理... 此题就是模板,然而还是写了好久好久... 具体看这个博客吧:https://blog.c ...

最新文章

  1. 软件测试人员用python_【答知友问】软件测试人员能用python做哪些事情?
  2. Android之adb jdwp获取debug版本app的进程Id
  3. silklabo哪个公众号有资源_微小说免费渣渣团资源公众号看大全集
  4. MATLAB基础教程(5)——斐波那契数列
  5. 授人以鱼不如授人以渔,UCHome全面大解析培训活动【第三集】
  6. VMware Tools显示灰色的办法
  7. 安卓分辨率_免费的安卓群控1数字云免费安卓群控系统
  8. 读-深入理解Java虚拟机(1-2章)随笔
  9. 2017.12.1T19_B2_1zuoye
  10. 计算机多媒体技术视差估计,立体视觉中视差估计算法研究
  11. 微博上一些有用的话(四)
  12. Crate命令行客户端Crash
  13. 以太网结构框架的学习
  14. php gd 坐标,【PHP】GD库笔记 初探GD库的坐标
  15. office@word官方文档查看@审阅@批注@修订
  16. Python实例浅谈--Python与C/C++相互调用
  17. linux切换用户时释放资源,linux 切换用户报Resource temporarily unavailable
  18. VMware Workstation虚拟机网络相关配置
  19. 医院系统集成平台和临床数据中心CDR、大数据平台之间的关系?
  20. Note For Linux By Jes(8)-Linux 账号管理与ACL权限控制

热门文章

  1. js获取今天剩余时间_js动画,setTimeout/setInterval的不准确
  2. mysql中的found_MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
  3. python绘制彩色地震剖面_在地图上绘制饼图时“爆炸”楔形图(Python,matplotlib)...
  4. 日志服务Python消费组实战(三):实时跨域监测多日志库数据
  5. PYPL 11 月的 IDE 指数榜单
  6. 用python实现接口测试(八、实现序列化与反序列化)
  7. “630”落幕 光伏何去何从?
  8. 如何选择使用字符串还是数字呢?
  9. Android自动化测试 monkey 工具学习3
  10. 深入一步研究DNS服务器