bzoj1488[HNOI2009]图的同构
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1488
1488: [HNOI2009]图的同构
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 591 Solved: 388
[Submit][Status][Discuss]
Description
求两两互不同构的含n个点的简单图有多少种。
简单图是关联一对顶点的无向边不多于一条的不含自环的图。
Input
输入一行一个整数N,表示图的顶点数,0<=N<=60
Output
输出一行一个整数表示含N个点的图在同构意义下互不同构的图的数目,答案对997取模。
Sample Input
1
输入2
2
输入3
3
Sample Output
1
输出2
2
输出3
4
HINT
题目在这里 http://hi.baidu.com/fqq11679/blog/item/c277b9f8ff205e50252df2e9.html
Source
百度hi是什么。。
我怎么从来都不知道。。
这真是一道无聊而又无聊的题。。
看到同构两个字就想到了置换群和polya定理。。
但是。。
但是。。
但是。。
这道题要算的是边上的置换。。
感觉不可做。。
然后看了一发题解:http://blog.csdn.net/wzq_qwq/article/details/48035455
就会了
题解说的很详细了,就是把几个循环上的点拎出来再分类讨论一下,最后用polya定理算一下总答案就行了。
记得用逆元算啊。。
代码。。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 1010
#define mod 997
using namespace std;
int i,j,k,n,m,x,y,t,cnt,ans,fac[N],num[N],val[N];
int gcd(int x,int y){return y==?x:gcd(y,x%y);}
int quickmi(int x,int y){
if (y==)return x;
t=quickmi(x,y>>);t=(t*t)%mod;
return (y&)?t*x%mod:t;
}
void dfs(int now,int x){
if(x==){
int anow=,la=;
for(int i=;i<=cnt;i++){
anow+=num[i]*(num[i]-)/*val[i]+val[i]/*num[i];
for(int j=i+;j<=cnt;j++)anow+=num[i]*num[j]*gcd(val[i],val[j]);
}
for(int i=;i<=cnt;i++){la=(la*quickmi(val[i],num[i])%mod*fac[num[i]])%mod; }
la=quickmi(la,mod-)*fac[n]%mod;
ans=(ans+quickmi(,anow)*la%mod)%mod;
}
if(now>x)return;
dfs(now+,x);
for(int i=;i*now<=x;i++){val[++cnt]=now,num[cnt]=i;dfs(now+,x-i*now);cnt--;}
}
int main(){
scanf("%d",&n);
fac[]=;for(i=;i<=mod;i++)fac[i]=fac[i-]*i%mod;
dfs(,n);
ans=ans*quickmi(fac[n],mod-)%mod;
printf("%d\n",ans);
return ;
}
都快noip了还在做这种跟noip无关的题。。
bzoj1488[HNOI2009]图的同构的更多相关文章
- bzoj1488 [HNOI2009]图的同构 Burnside 引理
题目传送门 bzoj1488 - [HNOI2009]图的同构 bzoj1815 - [Shoi2006]color 有色图(双倍经验) 题解 暴力 由于在做题之前已经被告知是 Burnside 引理 ...
- [bzoj1488][HNOI2009]图的同构——Polya定理
题目大意 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b ...
- 【BZOJ1488】[HNOI2009]图的同构(Burside引理,Polya定理)
[BZOJ1488][HNOI2009]图的同构(Burside引理,Polya定理) 题面 BZOJ 洛谷 题解 求本质不同的方案数,很明显就是群论这套理论了. 置换一共有\(n!\)个,考虑如何对 ...
- 【BZOJ1488】[HNOI2009]图的同构计数
题目链接 题意 求 n 个点的同构意义下不同的图的数量.\((n\leq 60)\) Sol \(Polya\) 定理的练手题. 我们这里先把边的存在与否变成对边进行黑白染色,白色代表不存在,这样就变 ...
- [BZOJ1815&BZOJ1488]有色图/图的同构(Polya定理)
由于有很多本质相同的重复置换,我们先枚举各种长度的点循环分别有多少个,这个暴搜的复杂度不大,n=53时也只有3e5左右.对于每种搜索方案可以轻易求出它所代表的置换具体有多少个. 但我们搜索的是点置换组 ...
- BZOJ 1488: [HNOI2009]图的同构 polay
题意:两个图AB同构:把A的顶点重新编号后与B一模一样.求n个顶点的图一共有多少个?(同构的算一种) 思路:边有n*(n-1)/2,这些边可以有可以没有,所以等同于边的颜色有两种.然后将n划分成循环节 ...
- BZOJ 1488: [HNOI2009]图的同构 [Polya]
完全图中选出不同构的简单图有多少个 上题简化版,只有两种颜色....直接copy就行了 太诡异了,刚才电脑上多了一个不动的鼠标指针,然后打开显卡管理界面就没了 #include<iostream ...
- [HNOI2009]图的同构
Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和 ...
- bzoj 1488: [HNOI2009]图的同构
Description 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和 ...
随机推荐
- WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法。
原文:WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330 ...
- mfc Edit控件属性
设置Edit控件属性 窗口创建顺序 初始化Edit控件数据 一.设置Edit控件属性 .Align Text :Right 二.窗口创建顺序 CMywindowdlg: 窗口构造函数 OnCreate ...
- python 回溯法 子集树模板 系列 —— 16、爬楼梯
问题 某楼梯有n层台阶,每步只能走1级台阶,或2级台阶.从下向上爬楼梯,有多少种爬法? 分析 这个问题之前用分治法解决过.但是,这里我要用回溯法子集树模板解决它. 祭出元素-状态空间分析大法:每一步是 ...
- python 单体模式 的几种实现
这是本人的一篇学习笔记. 本文用 python 实现单体模式,参考了这里 一.修改父类的 __dict__ class Borg: _shared_state = {} def __init__(se ...
- 【LG1368】工艺
[LG1368]工艺 题面 洛谷 题解 好套路的一道题... 我们倍长这个字符串,然后我们要查询的串就为这个倍长过后串的长度\(n\)一个子串,要求字典序最小 然后就可以非常愉快地后缀排序了 后缀的话 ...
- C#图片处理(转zhjzwl/archive)
基本原理: 获取每一个像素值,然后处理这些每一个像素值. 原始图片: ISINBAEVA ~~~~~~~~ 一. 底片效果 原理: GetPixel方法获得每一点像素的值, 然后再使用SetPix ...
- python3解析网页经过base64编码后的图片
有时候我们打开网页看到的图片不是普通的url,例如:www.baidu.com/static/2.jpg,而是经过base64方式加密过的路径:例如:data:img/jpg;base64,/9j/4 ...
- LABVIEW串口通信基础
写这一篇串口通信基础的契机是最近刚刚完成一个温箱的仪器控制程序,LABVIEW通过串口与温箱单片机通讯,我打算将过程中遇到的一些问题和收获列在这里方便有需求的网友比对.寻找答案. 学LABVIEW时间 ...
- 2014.8.23 Research Meeting Report
Dear All: It was good talk yesterday. However, I want to emphasize that, finally it is the *work* an ...
- 如何在百度云虚拟机中配置thinkphp5,并且url去掉index.php
第一步:将public目录下的index.php移到和public同级目录下,[或者直接在public同级目录下新建一个index.php] 第二步:那么这个新的index.php文件的内容如下: & ...