BZOJ 1478 Sgu282 Isomorphism 置换
来源:互联网 发布:新闻发稿平台源码 编辑:程序博客网 时间:2024/05/22 01:45
题意:
一个无向完全图,m种颜色对所有边进行染色,求任意更改点的顺序不同构的图的个数。
解析:
做完1488再看这题简直sb题。
1488是边连或者不连,其实就是两种颜色在染色。
所以这题就是1488的强化…
然并卵直接水就行。
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 1010using namespace std;typedef long long ll;ll n,cnt,ans,m,mod;ll powtwo[N],factor[N],invfac[N],num[N],val[N],gcd[N][N],inv[N];ll get_gcd(ll x,ll y){ while(y) { ll t=y; y=x%y; x=t; } return x;}ll get_inv(ll x,ll y){ ll ret=1; while(y) { if(y&1)ret=(ret*x)%mod; x=(x*x)%mod; y>>=1; } return ret;}void init(){ powtwo[0]=factor[0]=invfac[0]=1; for(ll i=1;i<=1000;i++) { factor[i]=factor[i-1]*i%mod; }}void dfs(ll now_num,ll left){ if(left==0) { ll retnow=0; ll bot=1; for(ll i=1;i<=cnt;i++) { retnow+=num[i]*(num[i]-1)/2*val[i]+val[i]/2*num[i]; for(ll j=i+1;j<=cnt;j++) retnow+=num[i]*num[j]*get_gcd(val[i],val[j]); } for(ll i=1;i<=cnt;i++) { bot=(bot*get_inv(val[i],num[i])%mod*factor[num[i]])%mod; } bot=get_inv(bot,mod-2)*factor[n]%mod; ans=(ans+get_inv(m,retnow)*bot%mod)%mod; } if(now_num>left)return; dfs(now_num+1,left); for(ll i=1;i*now_num<=left;i++) { val[++cnt]=now_num,num[cnt]=i; dfs(now_num+1,left-i*now_num); cnt--; }}int main(){ scanf("%lld%lld%lld",&n,&m,&mod); init(); dfs(1,n); ans=ans*get_inv(factor[n],mod-2)%mod; printf("%lld\n",ans);}
0 0
- BZOJ 1478 Sgu282 Isomorphism 置换
- BZOJ 1478 Sgu282 Isomorphism
- [Polya计数 图的同构] BZOJ 1478 Sgu282 Isomorphism
- sgu282:Isomorphism(polya计数)
- BZOJ1478: Sgu282 Isomorphism(Polya)
- bzoj 4474: [Jsoi2015]isomorphism
- bzoj 1119置换群
- BZOJ 1025 游戏【置换群】
- bzoj 1004(置换+逆元)
- BZOJ 1025 分组背包 置换
- 【BZOJ】【P1119】【POI2009】【SLO】【题解】【置换群】
- 【置换群】【bzoj 1004】: [HNOI2008]Cards
- bzoj 1119: [POI2009]SLO(置换)
- bzoj 1004: [HNOI2008]Cards(置换)
- 【bzoj 1119】 [POI2009] SLO(置换群)
- BZOJ 1119: [POI2009]SLO 置换+贪心
- 【BZOJ 1025】[SCOI2009]游戏 置换+dp
- BZOJ 1119: [POI2009]SLO 置换,循环节
- 阅读笔记:TCP/IP详解卷1
- 内核管理-之进程虚拟内存-基于linux3.10
- 黑马程序员——Swift学习笔记:简介与交互环境
- First Missing Positive
- PHP读取XML数据中CDATA内数值
- BZOJ 1478 Sgu282 Isomorphism 置换
- iOS9 微信支付支付宝支付适配
- cmd下乱码解决
- hdu 4185 Oil Skimming 【最大匹配】
- 求两数之和
- UI07_界面传值
- 常见的网络图像格式有哪些,在HTML中各适合什么场合?
- 数据库的大表设计问题
- Unix环境编程学习笔记----如何理解套接字缓冲区???? ?其作用和原理是什么???