codeforces gym #101873B. Buildings(Polya定理)
参考博客:
https://blog.csdn.net/liangzhaoyang1/article/details/72639208
题目链接:
https://codeforces.com/gym/101873/problem/B
题意:
给出$C$种颜色,涂在每面墙大小为$n\cdot n$的正$m$角楼上,求本质不同的染色方法种数
数据范围:
$1\leq n\leq 500$
$3\leq m\leq 500$
$1\leq c\leq 500$
分析:
题目可以转化为$C^{n\cdot n}$种颜色,涂在有$m$个节点的项链上,求本质不同的染色方法种数
这样我们可以直接套用Polya模板
$$ans=\frac{1}{m}\cdot \left ( C^{gcd(1,m)} +C^{gcd(2,m)}+C^{gcd(3,m)}...+C^{gcd(m,m)}\right )$$
ac代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e3+10;
const int mod=1e9+7;
ll qpow(ll n,ll m)
{
ll res=1;
ll k=n;
while(m)
{
if(m&1)res=res*k%mod;
k=k*k%mod;
m/=2;
}
return res;
}
int main()
{
// cout<<qpow(4,5)<<" "<<qpow(5,4)<<endl;
ll n,m,c,ans=0;
cin>>n>>m>>c;
ll g=qpow(c,n*n);
for(ll i=1;i<=m;i++)
ans=(ans+qpow(g,__gcd(i,m)))%mod;
ans=ans*qpow(m,mod-2)%mod;
cout<<ans<<endl;
return 0;
}
codeforces gym #101873B. Buildings(Polya定理)的更多相关文章
- 【转】Polya定理
转自:http://endlesscount.blog.163.com/blog/static/82119787201221324524202/ Polya定理 首先记Sn为有前n个正整数组成的集合, ...
- 【群论】polya定理
对Polya定理的个人认识 我们先来看一道经典题目: He's Circles(SGU 294) 有一个长度为N的环,上面写着“X”和“E”,问本质不同的环有多少个(不 ...
- [wikioi2926][AHOI2002]黑白瓷砖(Polya定理)
小可可在课余的时候受美术老师的委派从事一项漆绘瓷砖的任务.首先把n(n+1)/2块正六边形瓷砖拼成三角形的形状,右图给出了n=3时拼成的“瓷砖三角形”.然后把每一块瓷砖漆成纯白色或者纯黑色,而且每块瓷 ...
- HDU 3923 Invoker(polya定理+逆元)
Invoker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 122768/62768 K (Java/Others)Total Su ...
- Polya定理
http://www.cnblogs.com/wenruo/p/5304698.html 先看 Polya定理,Burnside引理回忆一下基础知识.总结的很棒. 一个置换就是集合到自身的一个双射,置 ...
- POJ 2409 Let it Bead(Polya定理)
点我看题目 题意 :给你c种颜色的n个珠子,问你可以组成多少种形式. 思路 :polya定理的应用,与1286差不多一样,代码一改就可以交....POJ 1286题解 #include <std ...
- POJ 1286 Necklace of Beads(Polya定理)
点我看题目 题意 :给你3个颜色的n个珠子,能组成多少不同形式的项链. 思路 :这个题分类就是polya定理,这个定理看起来真的是很麻烦啊T_T.......看了有个人写的不错: Polya定理: ( ...
- 百练_2409 Let it Bead(Polya定理)
描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ca ...
- polya定理小结
polya的精髓就在与对循环节的寻找,其中常遇到的问题就是项链染色类问题. 当项链旋转时有n种置换,循环节的个数分别是gcd(n, i); 当项链翻转时有n种置换,其中当项链珠子数位奇数时,循环节的个 ...
随机推荐
- ZOOKEEPER进阶
集群个数: 2n+1,因为集群当宕机大于等于二分之一的机子时,集群选举会失败.故 2n+1台机器和3n台机器可靠性相同 Leader的作用: 为了实现各个节点数据的一致性,需要一个负责协调数据同步的操 ...
- C# Reflection exception Method not found
C# Reflection exception Method not found Ok I figured it out. The server has Microsft .NET 4.0 insta ...
- 页面加载时调用js函数方法
方法一:在html的body中加入onload=""事件 <body onload='queryServer()'> </body> 方法二:jquery ...
- UEFI笔记 --- PeiReadOnlyVariable2->GetVariable()
问:在PEI阶段,PeiReadOnlyVariable2->GetVariable()可以从Pei Hob或NV RAM中获取UEFI变量,例如Setup默认值.若平台首次烧录BIOS并开机, ...
- 7.Hibernate查询
一:Hibernate可以使用的查询语言 1.NativeSQL:本地语言(数据库自己的SQL语句) 2.HQL:hibernate自带的查询语句,可以使用HQL语言,转换成具体的方言 3.EJBQL ...
- 2、screen工具
1.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...
- js基本事件
1:单击事件 --onclick function test01(){ alert("js的单击事件"); } 2:双击事件--ondblclick function test02 ...
- Galera Cluster 实现mysql的高可用 (Percona XtraDB Cluster)
Galera Cluster 实现mysql的高可用 (Percona XtraDB Cluster) # 基础搭建 # 设备:三台主机 192.168.47.101 192.168.47.102 1 ...
- 关于C++跨平台
问题:C++是怎么跨平台的呢? 答: 因为支持C++语言的各个平台的架构不同(比如CPU能够处理的指令集不一样),所以一份C++源代码要想在另一个操作系统平台上执行,就必须用该平台相对应的C++代码编 ...
- STM32/EMC/ZILIAO
https://www.st.com/content/ccc/resource/technical/document/application_note/a2/9c/07/d9/2a/b2/47/dc/ ...