polay计数原理
公式:
Burnside引理: 1/|G|*(C(π1)+C(π2)+C(π3)+.....+C(πn));
C(π):指不同置换下的等价类数。例如π=(123)(3)(45)(6)(7),X={1,2,3,4,5,6,7};那么C(π)={3,6,7}共3个等价类。
Polya定理: 1/|G|*(mC(π1)+mC(π2)+mC(π3)+...+mC(πk)).
设G={π1,π2,π3........πn}是X={a1,a2,a3.......an}上一个置换群, 其中C(πk)为置换πk的循环节的个数。
eg:
POJ2409 Let it Bead
http://poj.org/problem?id=2409
题意:
有一个n长的项链,用m种颜色对其染色,有多少中不同的染色方法,项链可以旋转或者翻转。
思路:
用polya计数法,
对于旋转:每种旋转的循环节数就是gcd(i,n).
对于翻转:奇数时,按一个点与对边的轴翻转,循环节就是(n+1)/2,有n种。
偶数时,可以以两条对边翻转,循环节数就是n/2,可以以两对点翻转,循环节数就是(n+2)/2 ,分别有n/2种
代码:
long long n,m;
long long flag,sum,ave,ans,res; long long gcd(long long x,long long y)
{
return y?gcd(y,x%y):x;
}
long long power(long long x,long long k)
{
long long ans = 1;
while(k)
{
if(k & 1) ans *= x;
x *= x;
k >>= 1;
}
return ans;
}
int main()
{
int i,j,k,kk,t,x,y,z;
while(scanf("%lld%lld",&m,&n)!=EOF&&n)
{
sum=0;
for(i=1;i<=n;i++)
sum+=power(m,gcd(n,i));
if(n&1)sum+=(n*power(m,(n+1)/2));
else sum+=(n/2*power(m,(n+2)/2)+n/2*power(m,n/2));
sum/=(2*n);
printf("%lld\n",sum);
}
return 0;
}
gym-101873B Buildings(polya计数)
ll qfast(ll x,ll y)
{
ll ans=1;
while(y)
{
if(y&1) ans=ans*x%mod;
x=x*x%mod;
y>>=1;
}
return ans%mod;
}
void run()
{
ll n=rdll(),m=rdll(),c=rdll();
ll x=qfast(c,n*n);
ll ans=0;
for(ll i=1;i<=m;i++)
{
ans+=qfast(x,__gcd(i,m));
ans%=mod;
}
ans*=qfast(m,mod-2);
printf("%lld\n",ans%mod);
}
signed main()
{
// int t=rd();
// while(t--)
run();
return 0;
}
polay计数原理的更多相关文章
- STM32F4_TIM基本延时(计数原理)
Ⅰ.概述 STM32的TIM定时器分为三类:基本定时器.通用定时器和高级定时器.从分类来看就知道STM32的定时器功能是非常强大的,但是,功能强大了,软件配置定时器就相对复杂多了.很多初学者甚至工作了 ...
- Burnside引理和polay计数学习小记
在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...
- Luogu 1351 NOIP 2014 联合权值(贪心,计数原理)
Luogu 1351 NOIP 2014 联合权值(贪心,计数原理) Description 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi, ...
- POJ 2409 Let it Bead(polay计数)
题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于 ...
- Objective-C 引用计数原理
http://www.cocoachina.com/ios/20160112/14933.html 引用计数如何存储 有些对象如果支持使用 TaggedPointer,苹果会直接将其指针值作为引用计数 ...
- oc引用计数原理-引用计数相关变化
http://blog.csdn.net/null29/article/details/71191044 在 32 位环境下,对象的引用计数都保存在一个外部的表中,每一个对象的 Retain 操作,实 ...
- [打基础]luogu2181对角线——计数原理
啦啦啦我ysw又回来啦!之后大概会准备打acm,暑假尽量复习复习,因为已经快两年没碰oi了,最多也就高三noip前学弟学妹出题讲题,所以从这一篇blog开始大概会有一系列"打基础" ...
- SPOJ 422 Transposing is Even More Fun(polay计数)
题目链接:http://www.spoj.com/problems/TRANSP2/ 题意: 思路:不妨设a=1,b=2, 我们发现(001,010,100)组成一个置换,(011,110,101)组 ...
- HDU 4633 Who's Aunt Zhang(polay计数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4633 题意:有下面一个魔方.有K种颜色.可以为顶点.边.面(每个面有9个小面)染色.两种染色算作一种当 ...
随机推荐
- redis持久化-AOF
1.aof文件写入与同步 2.aof重写 重写的目的是为了减小aof文件的体积,redis服务器可以创建一个新的aof文件来代替现有的aof文件,新文件不会有冗余的命令. BGREWRITEAOF:遍 ...
- python 爬取腾讯视频的全部评论
一.网址分析 查阅了网上的大部分资料,大概都是通过抓包获取.但是抓包有点麻烦,尝试了F12,也可以获取到评论.以电视剧<在一起>为例子.评论最底端有个查看更多评论猜测过去应该是 Ajax ...
- CSS 检测 IE 浏览器
CSS 检测 IE 浏览器 <!--[if IE]> <link href="ie.css" rel="stylesheet"> < ...
- Google reCAPTCHA 2 : Protect your site from spam and abuse & Google reCAPTCHA 2官方教程
1
- How to enable HTTPS for local development in macOS using Chrome
How to enable HTTPS for local development in macOS using Chrome HTTPS, macOS, Chrome local HTTPS htt ...
- Flutter: random color
import 'dart:math' as math; import 'package:flutter/material.dart'; void main() => runApp(App()); ...
- PAUL ADAMS ARCHITECT:澳洲房贷最低利率来袭
11月3日澳洲储备银行宣布将官方现金利率从0.25%降至0.1%,破历史最低纪录.此次澳洲储备银行降息的目的主要是为了刺激经济走出全球经济危机引发的衰退.据了解,这已经是澳洲今年第三次降息,也是自20 ...
- 两年Java,去字节跳动写Python和Go
前言 2019年5月,在收到offer邮件的那一刻,我仍然不敢相信自己这一番际遇.经历了七场面试,终于得偿所望,拿到了字节跳动的offer. 做加入大厂的决定并不是巧合.在多年的职业生涯里,我曾多次对 ...
- JVM 字节码之 int 入栈指令
本文转载自JVM 字节码之 int 入栈指令(iconst.bipush.sipush.ldc) 前言 本文介绍 int 入栈指令 iconst.bipush.sipubh.Idc. 当 int 取值 ...
- 6. vue组件详解(一)
主要内容: 1. 组件的基本使用 2. 全局组件和局部组件 3. 父组件和子组件 4. 组件语法糖的写法 5. 组件data关联的写法 6. 父子组件的通信 组件系统是 Vue 的一个重要概念,因为它 ...