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. React Native中pointerEvent属性

    在React Native界面开发中, 如果使用绝对定位布局,在代码运行时的某个时刻有可能会遮盖住它的下方的某个组件.这是因为绝对定位只是说这个组件的位置由它父组件的边框决定. 绝对定位的组件可以被认 ...

  2. jq 监听返回事件

    <script> $(document).ready(function(e) {             var counter = 0;            if (window.hi ...

  3. kubernetes API 访问控制在阿里云容器服务(ACK)上的实践

    提起K8s API的访问控制,很多同学应该都会想到RBAC,这是K8s用来做权限控制的方法,但是K8s对API的访问控制却不止于此,今天我们就来简单介绍下K8s的访问控制以及ACK如何利用这套方法提供 ...

  4. @codeforces - 1205B@ Shortest Cycle

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 n 的正整数序列 a1, a2, ..., an ...

  5. php 位运算 3<<2;

  6. python基础之逻辑题(3)

    Python基础之逻辑题(3) 1.编写一个函数实现将IP地址转换成一个整数 2.求结果:---lambda 3.求a的结果 4.求下面nums的输出 5.求下面片段的输出 6.写出程序的结果:--- ...

  7. CentOs7 使用iptables开启关闭端口

    介绍 iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分 iptables文件设置路径:命令:vim /etc/sysconfig/iptables-config 注 ...

  8. settTimeout vs setInterval

    setTimeout:过一段固定的时间后,将代码提交到代码队列中排队. setInterval:每隔一段固定的时间,执行一次代码. 他们两都接受两个参数,第一个参数是字符串或者函数,第二个参数是设定的 ...

  9. Java反射机制(四):动态代理

    一.静态代理 在开始去学习反射实现的动态代理前,我们先需要了解代理设计模式,那何为代理呢? 代理模式: 为其他对象提供一种代理,以控制对这个对象的访问. 先看一张代理模式的结构图: 简单的理解代理设计 ...

  10. Codeforces Round #172 (Div. 1 + Div. 2)

    A. Word Capitalization 模拟. B. Nearest Fraction 枚举. C. Rectangle Puzzle 求出两个矩形的点,套简单多边形的面积交板子. D. Max ...