题目大意:求无向图的连通图个数。由于个数可能很大,只需要求出结果$mod1000000009$的值。$n\leq 1000$

-------------------------

对于一个含有$n$个结点的图,一共有$2^{\frac{n(n-1)}{2}}$种情况(把所有边连或不连都考虑到了,可以自行模拟出来)我们假设$h[n]=2^{\frac{n(n-1)}{2}}$。设$f[n]$表示大小为$n$的图的无向连通图个数。接下来我们假设图中有一个点$1$(叫什么都行)。

假设这个点只与$i-1$个点相连了。那么它们组成了一个大小为$i$的子图,方案数为$f[i]$。挑选方式有$C(n-1,i-1)$种。剩下还有$n-i$个点没有与这个子图联通,而它们之间的联通情况是随意的,即$h[n-i]$种。所以此时整个图不连通的情况有$C(n-1,i-1)*f[i]*h[n-i]$种。

因为$i$可以从$1$枚举到$n-1$,所以总的表达式有:

$h[n]=2^{\frac{n(n-1)}{2}}$

$f[n]=h[n]-\sum_{i=1}^{n-1} C(n-1,i-1)*f[i]*h[n-i]$

转移是$O(n)$的,快速幂$logn$。预处理$n^2$。

代码:

#include<bits/stdc++.h>
using namespace std;
const long long p=1e9+;
long long f[],h[],C[][];
int n;
inline int qpow(int a,int b) { register long long ret=; a%=p;
for(;b;b>>=,a=(long long)a*a%p) if(b&) ret=ret*a%p; return ret;
}
int main()
{
cin>>n;
for (int i=;i<=n;i++)
{
C[i][]=;
for (int j=;j<=i;j++) C[i][j]=(long long)(C[i-][j-]+C[i-][j])%p;
}
for (int i=;i<=n;i++) h[i]=qpow(,i*(i-)/);
for (int i=;i<=n;i++)
{
f[i]=h[i];
for (int j=;j<i;j++) f[i]=(f[i]-(long long)C[i-][j-]*f[j]%p*h[i-j]%p+p)%p;
f[i]=(f[i]+p)%p;
}
printf("%lld",f[n]);
return ;
}

最新文章

  1. MVC 自定义Htmlhelper扩展
  2. Python中使用递归输出嵌套列表并转化为大写
  3. Predicate接口和Consumer接口
  4. Ceph剖析:定时器safetimer的实现
  5. MONGODB(三)——Java操作Mongo
  6. Virtualbox虚拟机安装Ubuntu图文版
  7. iOS单例模式
  8. 【解题报告】[动态规划] RQNOJ PID106 / 最大加权矩形
  9. 转: adroid音视延迟 10ms的原因与解答
  10. window.onload() 等待所有的数据加载都完成之后才会触发
  11. CCNP路由实验(1) -- EIGRP
  12. es6的常用语法
  13. 前序遍历构造已知二叉树(Java)
  14. AspectJ的拓展学习--织入顺序和通知参数指定
  15. HDU 5542 - The Battle of Chibi - [离散化+树状数组优化DP]
  16. BZOJ 1093 [ZJOI2007]最大半连通子图 - Tarjan 缩点
  17. 背水一战 Windows 10 (47) - 控件(ScrollViewer 特性): Chaining, Rail, Inertia, Snap, Zoom
  18. ASP.NET web api 跨域请求
  19. [转]google gflags 库完全使用
  20. phpMyAdmin的安装配置

热门文章

  1. 05 Vue项目搭建
  2. 04 Django模型层: Django-model进阶
  3. redis(二十):Redis 架构模式实现(主从复制)
  4. SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中
  5. Python之爬虫(十八) Scrapy框架中Item Pipeline用法
  6. 6 个珍藏已久 IDEA 小技巧,这一波全部分享给你!
  7. SQL中的多表联查(SELECT DISTINCT 语句)
  8. day6 python while,for 循环控制
  9. day1 python计算器底层运作,注释及变量
  10. var 的一个坑,以及 let