【poj2409】Let it Bead Polya定理
用 $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定理的更多相关文章
- 【POJ2409】Let it Bead Pólya定理
[POJ2409]Let it Bead 题意:用$m$种颜色去染$n$个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $n,m$很小就是了. 题解:在旋转$i ...
- POJ2409 Let it Bead(Polya定理)
Let it Bead Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6443 Accepted: 4315 Descr ...
- 置换群 Burnside引理 Pólya定理(Polya)
置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|= ...
- 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题
[BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...
- 【POJ2154】Color Pólya定理+欧拉函数
[POJ2154]Color 题意:求用$n$种颜色染$n$个珠子的项链的方案数.在旋转后相同的方案算作一种.答案对$P$取模. 询问次数$\le 3500$,$n\le 10^9,P\le 3000 ...
- 数学:Burnside引理与Pólya定理
这个计数定理在考虑对称的计数中非常有用 先给出这个定理的描述,虽然看不太懂: 在一个置换群G={a1,a2,a3……ak}中,把每个置换都写成不相交循环的乘积. 设C1(ak)是在置换ak的作用下不动 ...
- 置换及Pólya定理
听大佬们说了这么久Pólya定理,终于有时间把这个定理学习一下了. 置换(permutation)简单来说就是一个(全)排列,比如 \(1,2,3,4\) 的一个置换为 \(3,1,2,4\).一般地 ...
- Burnside引理&Pólya定理
Burnside's lemma 引例 题目描述 一个由2*2方格组成的正方形,每个格子上可以涂色或不涂色, 问共有多少种本质不同的涂色方案. (若两种方案可通过旋转互相得到,称作本质相同的方案) 解 ...
- @总结 - 12@ burnside引理与pólya定理
目录 @0 - 参考资料@ @1 - 问题引入@ @2 - burnside引理@ @3 - pólya定理@ @4 - pólya定理的生成函数形式@ @0 - 参考资料@ 博客1 @1 - 问题引 ...
- Pólya 定理学习笔记
在介绍\(Polya\) 定理前,先来介绍一下群论(大概了解一下就好): 群是满足下列要求的集合: 封闭性:即有一个操作使对于这个集合中每个元素操作完都使这个集合中的元素 结合律:即对于上面那个操作有 ...
随机推荐
- 最优布线问题(wire.cpp)
最优布线问题(wire.cpp) [问题描述] 学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来.两台计算机被连接是指它们间有数据线连接.由于计算机所处的位置不同,因此不同的两台计算机的 ...
- windows下安装,配置redis以及可视化客户端redisClient的安装及基本使用
一. Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情 ...
- Session丢失——解决方案
先抄下别人的作业(原帖:http://www.cnblogs.com/zhc088/archive/2011/07/24/2115497.html) Session丢失已经是一种习以为常的问题了,在自 ...
- [POJ3041]Asteroids
Asteroids 好久没打过网络流相关的题了...... 题意:一个矩阵n×n,有m个东西,一次去掉一整行或一整列,问最少次数. 题解:匈牙利. 把每行变成一个点(X集合),每列变成一个点(Y集合) ...
- macOS 10.14 Mojave Apache设置:多个PHP版本
[18/6/2018更新]由于Homebrew/php点击在2018年3月底被弃用,并将所有PHP公式移动到Homebrew/core,我们已经重新设计了我们的指南,使用这个新的水龙头. 如果您过去一 ...
- 解决WCF传输的数据量过大问题
今天写了个WCF接口,然后自测通过,和别人联调时报 远程服务器返回错误: (413) Request Entity Too Large 错误!记得以前写的时候也出现过这个错误,大致解决办 ...
- 深入理解C++中的Const,Mutable以及Volatile
我一直认为const表示一个常量,常量就是一个无法被修改的值,但是没有深入理解const的实现,甚至不知道mutable和volatile的存在,最近在书中看到了这一部分的知识,所以本文将详细解析这几 ...
- Java+Selenium 3.x 实现Web自动化 - Maven打包TestNG,利用jenkins执行测试
1. Jenkins本地执行测试 or 服务器端执行测试 测试代码计划通过jenkins执行时,通过网上查询各种教程,大多数为本地执行测试,由此可见,本地执行是大多数人的选择. 经过探讨,最终决定采用 ...
- selenium,unittest——下拉菜单操作,百度账号设置修改
#encoding=utf-8from selenium import webdriverimport time,unittest, re,sysfrom HTMLTestRunner import ...
- CSP201604-2:俄罗斯方块
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...