AcWing

Description

求$N$个节点的无向连通图有多少个,节点有标号,编号为$1~N$.

$1<=N<=50$

Sol

在计数类$DP$中,通常要把一个问题划分成若干个子问题,以便于执行递推.

一个连通图不容易划分,而一个不连通的无向图则很容易划分成结点更少的两部分.所以我们把问题转化成用$N$个点的无向图总个数减去$N$个点的不连通无向图的个数.

$N$个点的无向图总个数显然是$2^{N*(N-1)/2}$,还是简单说下叭,就是$N$个点连成完全图的边数显然是$N*(N-1)/2$,然后每条边都可取可不取,所以就是$2^{N*(N-1)/2}$.

现在我们要把问题划分成互斥的子问题 $OvO$.不连通的图由若干个连通图构成.我们可以枚举$1$结点所在的联通块包含的结点数$k$,从$2~N$这$N-1$个结点中选出$k-1$个结点,显然有$C_{N-1}^{k-1}$种.剩余$N-k$个结点构成任意无向图,显然有$2^{(N-k)*(N-k-1)/2}$种.

$F[i]$表示$i$个结点构成的无向连通图个数.
$F[i]=2^{i*(i-1)/2}-\sum_{j=1}^{i-1}F[j]*C_{i-1}^{j-1}*2^{(i-j)*(i-j-1)/2}$
$F[1]=1$,答案为$F[N]$

Code

本来我已经信心满满地开始写了,突然发现还要高精 : )).我咕咕咕了.也许明天会写???

随机推荐

  1. oracle函数 TRIM(c1 from c2)

    [功能]删除左边和右边出现的字符串 [参数]C2 删除前字符串 c1 删除字符串,默认为空格 [返回]字符型 [示例] select TRIM('X' from 'XXXgao qian jingXX ...

  2. python selenium处理iframe和弹框(一)

    处理iframe和弹框 # encoding:utf-8 from selenium import webdriver import time driver = webdriver.Firefox() ...

  3. 2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件

    2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服 ...

  4. better-scroll在移动端绑定click事件失效

    在做一个列表的时候需要点击列表将列表信息输出,给<li>加个一个很简单的@click,可是没有反应. 原因是使用了better-scroll,默认它会阻止touch事件.所以在配置中需要加 ...

  5. Laravel实现定时任务的示例代码

    https://mp.weixin.qq.com/s/VUEqjwcHRb0ovhP0wup36A 最近在玩Laravel实现定时任务,这个是示例代码,可以参照这个实例.有需要的可以看看 定时任务是后 ...

  6. 本地测试读取redis和普通文件缓存的速度,redis慢一倍?

    重新测试了,换成了Linux服务器,php5.6,512内存.连续读取1千次不同的文件(每个文件41KB),redis也是1千个不同的key,文件缓存还是比redis快! 但是,但是,后来我换成连续读 ...

  7. Android Animation动画详解(一): 补间动画

    前言 你有没有被一些APP中惊艳的动画效果震撼过,有没有去思考,甚至研究过这些动画是如何实现的呢? 啥?你没有思考,更没有研究过? 好吧,那跟着我一起来学习下如何去实现APP中那些让我们惊羡的动画特效 ...

  8. js实现开关灯游戏

    需求: 点击三个按钮,页面出现不同数量的“灯” 所有的灯有相同的点击效果.点击一个灯的时候,this和他的上下左右都会变成另一种背景色. 代码在这里~~~ 文章地址 https://www.cnblo ...

  9. Python--day67--内容回顾

  10. Treap(树堆)入门

    作者:zifeiy 标签:Treap 首先,我么要知道:Treap=Tree+Heap. 这里: Tree指的是二叉排序树: Heap指的是堆. 所以在阅读这篇文章之前需要大家对 二叉查找树 和 堆( ...