标签:代码 无向图 连接方式 枚举 连通 graph http 方式 target
http://poj.org/problem?id=1737 (题目链接)
求n个节点的无向连通图的方案数,不取模w(?Д?)w
刚开始想了个第二类斯特林数,然而并不知道怎么求具体方案,于是翻了题解。。
设${f_n}$表示n个节点的方案数。
那么n个节点所能够构成的无向图,无论连不连通,一共有${\frac{n*(n+1)}{2}}$条边,于是就有${2^{\frac{n*(n+1)}{2}}}$种图。考虑如何减去不连通的图的方案数。
我们选择枚举1号节点与i个节点连通,则${1<=i<=n-2}$(因为要保证不连通)。
那么这i个点的选择方案有${C^{i}_{n-1}}$种
整个1号节点的联通块有${f_{i+1}}$种连接方式
连通块以外的节点又有${2^{\frac{(n-i-1)*(n-i)}{2}}}$种连接方式
所以得到递推式就是:
$${f_n=2^{\frac{n*(n+1)}{2}}-\sum^{n-2}_{i=1}{C^{i}_{n-1}×f_{i+1}×2^{\frac{(n-i-1)*(n-i)}{2}}}}$$
我已经预见到了自己10kb的程序。。于是随便蒯了个Java切了。。
坑着
标签:代码 无向图 连接方式 枚举 连通 graph http 方式 target
原文地址:http://www.cnblogs.com/MashiroSky/p/6220842.html