题目描述

用 $c$ 种颜色去染 $r$ 个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的。求不同构的环的个数。 $r·c\le 32$ 。


题解

Polya定理

Burnside引理:一个置换群的等价类数目等于这个置换群中所有置换的不动点数目的平均值;
Polya定理:设有限群G有 $m$ 个置换,第 $i$ 个置换有 $a_i$ 个循环,现在要将所有的点染成 $c$ 种颜色,那么染色后群G的等价类数目为:$L=\frac{c^{a_1}+c^{a_2}+…+c^{a_m}}m$ 。
推导过程:显然对于第 $i$ 个置换来说,不动点要求所有循环的颜色相同,每个循环有 $c$ 种颜色选择,所以该置换的不动点数目为 $c^{a_i}$ 。

那么考虑每种置换的循环数目:

如果没有翻转操作:设旋转 $k$ 个位置,考虑一个循环的大小 $x$ ,实际上就是 $kx\mod r=0$ 的最小正整数解(转了 $x$ 次后回到原处)。
显然 $x=\frac{\text{lcm}(k,r)}{k}=\frac{r}{\gcd(k,r)}$ ,因此循环个数为 $\frac{r}{\frac{r}{\gcd(k,r)}}=\gcd(k,r)$ ,方案数为 $c^{\gcd(k,r)}$ ;

如果有翻转操作:对于任意的 旋转-翻转-旋转 操作都等同于一次翻转操作。因此只需要统计所有本质不同的翻转操作的答案。
当 $r$ 为奇数时,对称轴为 某点-对边中点 ,显然这样置换有 $r$ 种,每个置换有 $\frac{r+1}{2}$ 个循环。因此答案为 $rc^{\frac{r+1}{2}}$ ;
当 $r$ 为偶数时,对称轴为 某点-对点 时,置换有 $\frac r2$ 种,每个置换有 $\frac r2+1$ 个循环;对称轴为 某边-对边中点 时,置换有 $\frac r2$ 种,每种置换有 $\frac r2$ 个循环。因此答案为 $\frac r2(c^{\frac r2}+c^{\frac r2+1})$ 。

把这两部分加起来即为答案。

#include <cstdio>
typedef long long ll;
int gcd(int a , int b)
{
return b ? gcd(b , a % b) : a;
}
int main()
{
int n , m , i , d;
ll ans , t;
while(~scanf("%d%d" , &m , &n) && (n || m))
{
ans = 0;
for(i = 1 ; i <= n ; i ++ )
{
t = 1 , d = gcd(i , n);
while(d -- ) t *= m;
ans += t;
}
if(n & 1)
{
t = n;
for(i = 1 ; i <= n / 2 + 1 ; i ++ ) t *= m;
ans += t;
}
else
{
t = n / 2;
for(i = 1 ; i <= n / 2 ; i ++ ) t *= m;
ans += t;
t = n / 2;
for(i = 1 ; i <= n / 2 + 1 ; i ++ ) t *= m;
ans += t;
}
printf("%lld\n" , ans / 2 / n);
}
return 0;
}

【poj2409】Let it Bead Polya定理的更多相关文章

  1. 【POJ2409】Let it Bead Pólya定理

    [POJ2409]Let it Bead 题意:用$m$种颜色去染$n$个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $n,m$很小就是了. 题解:在旋转$i ...

  2. POJ2409 Let it Bead(Polya定理)

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

  3. 置换群 Burnside引理 Pólya定理(Polya)

    置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|= ...

  4. 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题

    [BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...

  5. 【POJ2154】Color Pólya定理+欧拉函数

    [POJ2154]Color 题意:求用$n$种颜色染$n$个珠子的项链的方案数.在旋转后相同的方案算作一种.答案对$P$取模. 询问次数$\le 3500$,$n\le 10^9,P\le 3000 ...

  6. 数学:Burnside引理与Pólya定理

    这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...

  7. 置换及Pólya定理

    听大佬们说了这么久Pólya定理,终于有时间把这个定理学习一下了. 置换(permutation)简单来说就是一个(全)排列,比如 \(1,2,3,4\) 的一个置换为 \(3,1,2,4\).一般地 ...

  8. Burnside引理&Pólya定理

    Burnside's lemma 引例 题目描述 一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色, 问共有多少种本质不同的涂色方案. (若两种方案可通过旋转互相得到,称作本质相同的方案) 解 ...

  9. @总结 - 12@ burnside引理与pólya定理

    目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...

  10. Pólya 定理学习笔记

    在介绍\(Polya\) 定理前,先来介绍一下群论(大概了解一下就好): 群是满足下列要求的集合: 封闭性:即有一个操作使对于这个集合中每个元素操作完都使这个集合中的元素 结合律:即对于上面那个操作有 ...

随机推荐

  1. Kali linux 安装

    df -m umount  /media exit

  2. spring源码-aop源码-5.1

    一.aop的源码部分还是有点复杂的,但是为了更好的理解,我这里会省去很多不必要的逻辑实现过程.主要方向还是更好的理解整体代码的实现过程. 二.说明重点:aop的过程主要过程有两点:第一点,发现正确和适 ...

  3. 属性文件操作之Properties与ResourceBundle

    1.Properties与ResourceBundle 两个类都可以读取属性文件中以key/value形式存储的键值对,ResourceBundle读取属性文件时操作相对简单. 2.Propertie ...

  4. Openwrt之移动硬盘ext3/ext4格式化工具

    在给openwrt挂载移动硬盘的时候,最好是ext3/ext4方式,但在windows下苦于无法找到合适的工具进行格式化. 踅摸了半天,终于找到了它:MiniTool Partion  Wizard ...

  5. Phaser游戏框架与HTML Dom元素之间的通信交互

    本想按照PHASER的HTML Dom元素官方实例:http://labs.phaser.io/index.html?dir=game%20objects/dom%20element/&q=  ...

  6. 存储过程关于LOOP循环问题

    本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 10 月 17 日 原地址:https://niaobulashi.com/archives/procedures_loop. ...

  7. 《Angular4从入门到实战》学习笔记

    <Angular4从入门到实战>学习笔记 腾讯课堂:米斯特吴 视频讲座 二〇一九年二月十三日星期三14时14分 What Is Angular?(简介) 前端最流行的主流JavaScrip ...

  8. Winrar去广告图文教程

    一.前言 1.1 Winrar 解压缩工具 市场上有很多优秀的压缩工具,常用的有Winrar 和360 压缩工具.Winrar是免费压缩工具,特色是每次使用都会弹出广告.影响用户体验和工作效率,当然最 ...

  9. mongodb复制集部署文档

    一.安装SNMP(新版mongodb需要此依赖安装) 安装snmp服务需要的rpm包: perl-Data-Dumper-2.145-3.el7.x86_64.rpm net-snmp-5.7.2-2 ...

  10. Vue.js项目中,当图片无法显示时则显示默认图片

    使用require将图片进入,写法如下: data: () => ({logo: 'this.src="' + require('../assets/img.png') + '&quo ...