【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\) 定理前,先来介绍一下群论(大概了解一下就好): 群是满足下列要求的集合: 封闭性:即有一个操作使对于这个集合中每个元素操作完都使这个集合中的元素 结合律:即对于上面那个操作有 ...
随机推荐
- 《Java 程序设计》课堂实践项目-mini dc
<Java 程序设计>课堂实践项目-后缀表达式 课后学习总结 目录 改变 mini dc实验要求 后缀表达式介绍 课堂实践成果 课后思考 改变 修改了博客整体布局,改变了之前贴个截图粘个代 ...
- treegrid -表格树异步加载
问题: 机构维护时,前端框架用的是easyui,如果同步全加载会出现页面延迟严重,影响用户体验 解决: 机构逐层加载,点击后加载 逐层加载会出现一个问题:子节点只有点击后才能加载子集 所以开始为叶子节 ...
- HBase核心功能模块--读书笔记
客户端Client 客户端 Client 是整个 HBase 系统的入口.使用者直接通过客户端操作 HBase.客户端 使用 HBase 的 RPC 机制与 HMaster 和 RegionServe ...
- Block 在 ARC 下的拷贝
前言 现在有一种说法,是开启arc选项时,已经没有栈上的block了,所以所有的block都不需要copy来拷贝到堆上了.那么这个说法正确与否呢? 结论是这个说法必须是错误的,首先的一点就是arc只是 ...
- macOS 10.14 Mojave 开发环境配置Apache多PHP版本
第1部分:macOS 10.14 Mojave Web开发环境 在macOS上开发Web应用程序真是一种乐趣.设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQ ...
- 【MYSQL权限】数据库权限部署
背景:没有划分数据库权限,所有人共用一个账号 本人公司现有的数据库账号分布情况: 所有人用一个账号(包括程序里面访问数据库的的配置文件里面的账号),该账号除删库权限,其他权限大部分都有. 这样非数据库 ...
- 自动化之UI(autoit)
自动化 说到自动化,我真的很不喜欢UI这层去做实践.前置条件要求比较严谨,如果不满足特定的前置条件,那么成本实在太大了. 投入与产出差过大,效果打折扣.从互联网来说,UI自动化是入门门槛很低的一种实践 ...
- TPO 03 - Architecture
TPO 03 - Architecture Architecture is the art and science of designing structures that[主语是Architectu ...
- PHP自定义生成二维码跳转地址
比较简单的一款PHP自定义生成二维码跳转地址,手机端微信扫码,自动跳转到定义好的链接.支持自定义生成二维码尺寸.间距等. 鼠标悬浮显示二维码弹出层,离开后消失.js实现,代码如下: $(fu ...
- Tomcat源码学习(2)——启动过程分析
Tomcat启动过程分析 启动 tomcat 时,Windows下执行 startup.bat :Linux下执行 startup.sh 文件,实际上最后都是调用 org.apache.catalin ...