题意:两个图AB同构:把A的顶点重新编号后与B一模一样。求n个顶点的图一共有多少个?(同构的算一种)

思路:边有n*(n-1)/2,这些边可以有可以没有,所以等同于边的颜色有两种。然后将n划分成循环节的和,n=L1+L2+……+Lm。现在需要把点置换映射到边置换。两个边在一个点循环节(大小L)时边置换循环节为L/2,否则为Gcd(L1,L2)。然后就是计算(L1,L2,……,Lm)这种划分的个数,设m个循环有t种数字,每种数字个数p1,p2,……,pt,那么划分个数为:n!/(L1*L2……*Lm*p1!*……*pt!)。

const int mod=997;

int p[N];
int n;
int f[N][2],cnt; void init()
{
p[0]=1;
int i;
for(i=1;i<N;i++) p[i]=p[i-1]*i%mod;
} int ans; void cal()
{
i64 x=0,i,j;
FOR0(i,cnt)
{
x+=f[i][0]/2*f[i][1]+(f[i][1]-1)*f[i][1]/2*f[i][0];
for(j=i+1;j<cnt;j++) x+=f[i][1]*f[j][1]*Gcd(f[i][0],f[j][0]);
}
i64 pp=1;
FOR0(i,cnt) pp=pp*myPow(f[i][0],f[i][1],mod)%mod*p[f[i][1]]%mod;
pp=p[n]*gcdReverse(pp,mod)%mod; ans+=myPow(2,x,mod)*pp%mod;
ans%=mod;
} void DFS(int t,int re)
{
if(re==0)
{
cal();
return;
}
if(t>re) return;
DFS(t+1,re);
int i;
for(i=1;i*t<=re;i++)
{
f[cnt][0]=t;
f[cnt++][1]=i;
DFS(t+1,re-i*t);
cnt--;
}
} int main()
{
init();
RD(n);
DFS(1,n);
ans=ans*gcdReverse(p[n],mod)%mod;
PR(ans);
}

BZOJ 1488: [HNOI2009]图的同构 polay的更多相关文章

  1. BZOJ 1488: [HNOI2009]图的同构 [Polya]

    完全图中选出不同构的简单图有多少个 上题简化版,只有两种颜色....直接copy就行了 太诡异了,刚才电脑上多了一个不动的鼠标指针,然后打开显卡管理界面就没了 #include<iostream ...

  2. bzoj 1488: [HNOI2009]图的同构

    Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和 ...

  3. bzoj 1488: [HNOI2009]图的同构【polya定理+dfs】

    把连边和不连边看成黑白染色,然后就变成了 https://www.cnblogs.com/lokiii/p/10055629.html 这篇讲得好!https://blog.csdn.net/wzq_ ...

  4. bzoj1488[HNOI2009]图的同构

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1488 1488: [HNOI2009]图的同构 Time Limit: 10 Sec  M ...

  5. 【BZOJ1488】[HNOI2009]图的同构(Burside引理,Polya定理)

    [BZOJ1488][HNOI2009]图的同构(Burside引理,Polya定理) 题面 BZOJ 洛谷 题解 求本质不同的方案数,很明显就是群论这套理论了. 置换一共有\(n!\)个,考虑如何对 ...

  6. [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并)

    [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并) 题面 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1 ...

  7. bzoj1488 [HNOI2009]图的同构 Burnside 引理

    题目传送门 bzoj1488 - [HNOI2009]图的同构 bzoj1815 - [Shoi2006]color 有色图(双倍经验) 题解 暴力 由于在做题之前已经被告知是 Burnside 引理 ...

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

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

  9. bzoj 1483 [HNOI2009]梦幻布丁(链表+启发式合并)

    1483: [HNOI2009]梦幻布丁 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1818  Solved: 761[Submit][Status ...

随机推荐

  1. sql 登录注入

    DataTable dt= SqlHelper.ExecuteDataTable(System.Data.CommandType.Text, String.Format("select * ...

  2. Oracle11.2新特性之listagg函数 (行列转换)

    SELECT regexp_substr('公司1,贵公司2', '[^,]+', 1, LEVEL, 'i') FROM dualCONNECT BY LEVEL <= length('公司1 ...

  3. 夺命雷公狗—angularjs—12—get参数的接收

    我们在实际的开发中get和post的交互都是离不开的,我们先来研究下get参数是如何接收到的.. 而且在实际开发中利用json来进行传递参数也是比较多的,这里我们就以get来接收参数为列.. 先创建一 ...

  4. Logic and Fault simulation

    fault simulation是指对fault circuit的simulation,来locate manufacturing defects并且进行fault diagnosis. logic ...

  5. yii2的redis扩展使用

    yii2支持了redis扩展,不需要在本地下载php的扩展库就可以很好的使用 1.下载windows的redis安装包打开cmd,进入安装包目录,使用redis-server.exe redis.co ...

  6. android 学习随笔十(网络:get、post提交数据)

    1.get public class Tools { public static String getTextFromStream(InputStream is){ byte[] b = new by ...

  7. asp显示记录条数

    Sql = "select * from xin126 where ID=" & id Rs.Open Sql,Conn,1,1 %> 共有<strong st ...

  8. 创建laravel项目时打开浏览器常见错误

    1.Whoops, looks like something went wrong. 打开:D:\java\wamp\www\subway\app\config\app.php 修改:'debug' ...

  9. Web API 和 WCF 的比较

    现在有很多可用的技术允许你创建被不同客户端所消费的服务,这些客户端可能是Web应用程序.Windows应用程序和移动应用等.服务可以支持http协议或者其他协议.接下来的讨论仅限于ASP.NET We ...

  10. Verilog HDL基础语法讲解之模块代码基本结构

    Verilog HDL基础语法讲解之模块代码基本结构   本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的 ...