BZOJ1478 Sgu282 Isomorphism
Problem A: Sgu282 Isomorphism
Time Limit: 15 Sec Memory Limit: 64 MB
Submit: 172 Solved: 88
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
题解:
一眼可以看出这是置换群吧,但是它要求的是边置换,开始感觉没什么思路,但是想想一条边由(u,v)两个点构成
于是我们有了新的思路:考虑将点置换转换为边置换
我们可以发现点置换转化为的边置换同样具有相应的循环节
于是考虑使用polya定理解决这个问题
L:表示一个循环的大小; C:表示循环节的个数;
首先对于一条边(u,v)它要分为两种情况:
(1)u,v不在在同一个点循环,于是对于这条边所在的循环的大小为Lu-v=lcm(Lu,Lv),Cu-v=(Lu*Lv)/lcm(Lu,Lv)=gcd(Lu,Lv);
(2) u,v在同一个点循环,于是分奇数和偶数进行讨论:
一共C(L,2)条边 注:此处C为组合数
1.奇数:Li是奇数,每个循环覆盖Li条边;循环节个数:
2.偶数:Li是偶数,一个特例:覆盖Li/2条边的循环;循环节个数:
(3)由上可知循环节个数:
•实际N!个点置换中,有多少个 结构呢?


(4由上求出答案即可:
- #include<iostream>
- #include<algorithm>
- #include<cstring>
- #include<cmath>
- #include<cstdio>
- #define ll long long
- #define N 70
- using namespace std;
- ll n,m,p;
- ll num[N],l[N],bin[N];
- ll ans;
- ll read()
- {
- ll x=,f=; char ch;
- while (ch=getchar(),ch<''||ch>'') if (ch=='-') f=-;
- while (x=x*+ch-'',ch=getchar(),ch>=''&&ch<='');
- return x*f;
- }
- int gcd(int a,int b){return b?gcd(b,a%b):a;
- }
- ll ksm(int x,int k){ll res=; for (int i=k; i; i>>=,x=1ll*x*x%p) if (i&) res=1ll*res*x%p; return res;
- }
- void cal(int k)
- {
- ll s=;
- for (int i=; i<=n; i++) num[i]=;
- for (int i=; i<=k ;i++) num[l[i]]++;
- for (int i=; i<=k; i++) s=s*l[i]%p;
- for (int i=; i<=n; i++) s=s*bin[num[i]]%p;
- int c=;
- for (int i=; i<=k; i++)
- {
- c+=l[i]/;
- for (int j=i+; j<=k; j++) c+=gcd(l[i],l[j]);
- }
- ans=(ans+ksm(m,c)*bin[n]%p*ksm(s,p-)%p)%p;
- }
- void dfs(int x,int k,int last)
- {
- if (x==n+) {cal(k-); return;}
- for (int i=; i<=last && x+i<=n+; i++)
- {
- l[k]=i; dfs(x+i,k+,i);
- }
- }
- int main()
- {
- n=read(); m=read(); p=read();
- bin[]=; for (int i=; i<=n; i++) bin[i]=bin[i-]*i%p;
- dfs(,,n);
- printf("%lld\n",ans*ksm(bin[n],p-)%p);
- return ;
- }
BZOJ1478 Sgu282 Isomorphism的更多相关文章
- [BZOJ1478&1488&1815][SGU282]Isomorphism:Polya定理
分析 三倍经验题,本文以[BZOJ1478][SGU282]Isomorphism为例展开叙述,主体思路与另外两题大(wan)致(quan)相(yi)同(zhi). 这可能是博主目前写过最长也是最认真 ...
- 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题
[BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...
- 【BZOJ 1478】 1478: Sgu282 Isomorphism (置换、burnside引理)
1478: Sgu282 Isomorphism Description 给 定一个N 个结点的无向完全图( 任意两个结点之间有一条边), 现在你可以用 M 种颜色对这个图的每条边进行染色,每条边必须 ...
- bzoj1478:Sgu282 Isomorphism
思路:由于题目中是通过改变点的编号来判断两种染色方案是否相同,而染色的确是边,于是考虑如何将点置换转化为边置换. 对于一个有n个点的完全图,其点置换有n!个(即全排列个数),又由于每一个边置换都对应了 ...
- bzoj 1478: Sgu282 Isomorphism && 1815: [Shoi2006]color 有色图【dfs+polya定理】
参考 https://wenku.baidu.com/view/fee9e9b9bceb19e8b8f6ba7a.html?from=search### 的最后一道例题 首先无向完全图是个若干点的置换 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 「算法笔记」Polya 定理
一.前置概念 接下来的这些定义摘自 置换群 - OI Wiki. 1. 群 若集合 \(s\neq \varnothing\) 和 \(S\) 上的运算 \(\cdot\) 构成的代数结构 \((S, ...
- 【sgu282】Isomorphism
题意: 给出n(n<=53)点的无向完全图 要将每条边染上m(m<=1000)种颜色的一种 只改变顶点编号的图视为同种方案 求本质不同方案数%p(p>n且为质树)的值 题解: 这题貌 ...
- Isomorphism 同构
小结: 1.两个有限维度的向量空间,在同一数域下,是同构的 等价于 它们维数相等. Isomorphism 同构 0.1.8 Isomorphism. If U and V are vector sp ...
随机推荐
- JavaBean-- DAO设计模式
企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...
- JS跨域代码
//部分JS代码 $.ajax({ async: false, url: "http://www.xxxx.com/api/", type: "GET",//不 ...
- svg都快忘了,复习一下
http://www.360doc.com/content/07/0906/21/39836_724430.shtml
- 优化Android App性能?十大技巧必知!
无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件 ...
- FusionCharts使用问题及解决方法(二)-FusionCharts常见问题大全
在上文中,我们介绍了FusionCharts常见问题(FAQ)的解决方法,本文将一同讨论FusionCharts使用者面临的一些复杂问题的解决方法. 如何启用JavaScript调试模式? 要启用Ja ...
- HDU 1203 I NEED A OFFER! 01背包 概率运算预处理。
题目大意:中问题就不说了 ^—^~ 题目思路:从题目来看是很明显的01背包问题,被录取的概率记为v[],申请费用记为w[].但是我们可以预先做个处理,使问题解决起来更方便:v[]数组保留不被录取的概率 ...
- Android学习之Service(1)--->Started方式
界面退出后进程程序还在运行,不会被杀死,如音乐播发器.后台下载等 注:本文只讨论Started方式 main.xml代码分析 <?xml version="1.0" enco ...
- MIME小知识
http://www.alixixi.com/program/a/2008020514775.shtml 用户可以通过使用MIME以设置服务器传送多媒体如声音和动画信息,这一切可能通过CGI脚本来进行 ...
- centos lvm常用命令
# vgs -a VG #PV #LV #SN Attr VSize VFree cinder 1 0 0 wz--n- 30.39g 30.39g os ...
- 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
原因 IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件. 该命令的 ...