题目链接:bzoj1488
题目大意:
求两两互不同构的含n个点的简单图有多少种。
简单图是关联一对顶点的无向边不多于一条的不含自环的图。
a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b图一一对应。

题解:
置换-ploya
把一条边选和不选看成把一条边染成两种颜色之后,就跟bzoj1478/1815一样了..这样看来就是三倍经验了。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 80const int mod=997;
int ans,n,l[N],fac[N],gd[N][N],qm[10100];
int gcd(int a,int b){return (b==0)?a:gcd(b,a%b);}
int qpow(int x,int t)
{int ret=1;while (t){if (t&1) ret=(ret*x)%mod;x=(x*x)%mod;t>>=1;}return ret;
}
void get_ans(int cnt)
{int i,j,c=0;for (i=1;i<=cnt;i++) c=c+l[i]/2;for (i=1;i<cnt;i++)for (j=i+1;j<=cnt;j++) c=c+gd[l[i]][l[j]];int now=1,tt=0;for (i=1;i<=cnt;i++){if (l[i]!=l[i-1]){now=(now*fac[tt])%mod;tt=0;}tt++;}now=(now*fac[tt])%mod;for (i=1;i<=cnt;i++) now=(now*l[i])%mod;int S=(fac[n]*qpow(now,mod-2))%mod;ans=(ans+(S*qm[c])%mod)%mod;
}
void div(int cnt,int x,int ret)
{if (ret==0) {get_ans(cnt);return;}if (x>ret) return;cnt++;while (x<=ret){l[cnt]=x;div(cnt,x,ret-x);x++;}
}
int main()
{//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);int i,j;scanf("%d",&n);qm[0]=1;for (i=1;i<=n*n;i++) qm[i]=(qm[i-1]*2)%mod;fac[0]=1;for (i=1;i<=n;i++) fac[i]=(fac[i-1]*i)%mod;for (i=1;i<=n;i++)for (j=i;j<=n;j++) gd[j][i]=gd[i][j]=gcd(i,j);ans=0;div(0,1,n);printf("%d\n",(ans*qpow(fac[n],mod-2))%mod);return 0;
}

bzoj1488[HNOI2009] 图的同构相关推荐

  1. BZOJ1488: [HNOI2009]图的同构

    BZOJ1488: [HNOI2009]图的同构 Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是 ...

  2. BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (群论、Burnside引理、组合计数)

    题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.ph ...

  3. BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (Burnside引理、组合计数)

    题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.ph ...

  4. BZOJ 1488 [HNOI2009]图的同构 Polya定理

    题意:链接 方法: Polya定理 解析: 先扯点题外话. 小雨淅沥的下午,PoPoQQQ爷在屠了一道题后放松心情,恰看见我把知识点上的群论标记已会. 于是,为了发扬D人的精神,PoPoQQQ爷打开了 ...

  5. 《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 小学生都能看懂系列,小学生:我太难了   群论.置换.Bunrnside引理.Pόlya定理等概念是群 ...

  6. P3201 [HNOI2009]梦幻布丁 [启发式合并][set]

    P3201 [HNOI2009]梦幻布丁 题意:N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3 ...

  7. [HNOI2009]最小圈 (二分答案+负环)

    题面:[HNOI2009]最小圈 题目描述: 考虑带权的有向图\(G=(V,E)\)以及\(w:E\rightarrow R\),每条边\(e=(i,j)(i\neq j,i\in V,j\in V) ...

  8. 【BZOJ1485】[HNOI2009]有趣的数列(组合数学)

    [BZOJ1485][HNOI2009]有趣的数列(组合数学) 题面 BZOJ 洛谷 题解 从小往大填数,要么填在最小的奇数位置,要么填在最小的偶数位置. 偶数位置填的数的个数不能超过奇数位置填的数的 ...

  9. P4728 [HNOI2009]双递增序列

    链接P4728 [HNOI2009]双递增序列 设\(f_{i,j}\)表示当前考虑第\(i\)个数,上一步是\(a_{i-1}\)接在后面的序列一共取了\(j\)个数,另外一个序列的末尾最小值. 转 ...

  10. 「BZOJ1485」[HNOI2009] 有趣的数列 (卡特兰数列)

    「BZOJ1485」[HNOI2009] 有趣的数列   Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai ...

最新文章

  1. python3连接mysql_第七篇:Python3连接MySQL
  2. Asp.Net大型项目实践(7)-用Unity实现AOP之事务处理+为啥要用AOP(附源码)
  3. Delphi2010组件/控件安装方法
  4. 大数据之-Hadoop3.x_MapReduce_ReduceJoin案例Reducer_案例_Debug调试---大数据之hadoop3.x工作笔记0132
  5. 解决React首屏加载白屏的问题
  6. 通过使用阿里云+vuepress快速搭建静态个人博客网页页面
  7. View事件机制分析
  8. python的基本语法while true_Python正课15 —— 流程控制之while循环
  9. 《Node应用程序构建——使用MongoDB和Backbone》一2.3 事件
  10. thinkphp group count连用
  11. c语言编程n元一次方程,解n元一次方程
  12. 手把手教你使用 i2c-tools
  13. C语言编写FFT程序
  14. 【转】凡事事必躬亲 是一种恶习
  15. 电脑运行应用程序出现0xc000007b的解决方法
  16. 联想小新蓝屏问题解决方法三步走!
  17. 天地不仁,以万物为刍狗No.42
  18. oracle 朱志辉_甲骨文(Oracle)授权教育中心落户我校
  19. 苹果微信分身版ios_微信正式支持暗黑模式:iOS版已上线 安卓版随后就来
  20. 华为路由器NAT配置

热门文章

  1. python不等于怎么表达_Python不等于怎么写
  2. ios storyboard 传参 返回传参(segue)
  3. 通过新建浏览器书签的方式给网页注入js代码
  4. 3dmax 单位设置 系统单位设置和显示单位比例
  5. 分享利用QQ群淘宝客引流变现技巧
  6. 《早起的奇迹》(死过一次的人生赢家)
  7. php7中setlocale函数,setlocale
  8. iphone6 计算机无法检测到照相机,iphone6手机照相不聚焦
  9. Linux搜索文件或内容
  10. div 设置a4大小_转载 网页打印时设置A4大小