设f(n)为所求答案 g(n)为n个顶点的非联通图 则f(n) + g(n) = h(n) = 2^(n * (n - 1) / 2) 其中h(n)是n个顶点的联图的个数 这样计算 先考虑1所在的连通分量包含哪些顶点 假设该连通分量有k个顶点 就有C(n - 1, k - 1)种集合 确定点集后,所在的连通分量有f(k)种情况.其他连通分量有 h(n - k)种情况 因此有递推公式.g(n) = sum{ C(n - 1, k - 1) * f(k) * h(n - k)} 其中k = 1,2.…
这是楼教主的男人八题之一.很高兴我能做八分之一的男人了. 题目大意:求有n个顶点的连通图有多少个. 解法: 1.  用总数减去不联通的图(网上说可以,我觉得时间悬) 2.    用动态规划(数学递推).网上讲的方法我觉得非常难懂,但好像也没有更好的表示.我就说一下吧: 用dp[i]表示i个顶点时的连通图的总数. 考虑将1号点去除后,2号点所在的联通块.设此联通块有k个点,则这块共有C(n-2,k-1)种取法. 回过头来看刚开始的图.可以把图分成两块,一是上述联通块,其余的另一块(此块也一定联通)…
// poj 1737 Connected Graph // // 题目大意: // // 带标号的连通分量计数 // // 解题思路: // // 设f(n)为连通图的数量,g(n)为非连通图的数量,h(n)为所有的 // 图的数量,h(n) = 2 ^(n * (n - 1) / 2); // f(n) + g[n] = h(n). // // 考虑标号为1在哪个连通分量内,设连通分量内有k个点,则问题为 // 在n-1个点中选择k-1个点的方法数 C(n-1,k-1),此时1所在的连通图数…
题目链接: http://poj.org/problem?id=1737 题意: 求 \(n\) 个点的无向简单(无重边无自环)连通图的个数.\((n<=50)\) 题解: 这题你甚至能OEIS. http://oeis.org/A001187 但不支持这样做.TAT 间接做. 总方案数减去不合法方案. 因为\(n\)个点的完全图有 \(C(n,2)={n(n-1) \over 2}\) 条边,显然就有 \(2^{C(n,2)}\) 种子图,即枚举每条边是否选择. 设$ f[i]$ 表示每个点都…
题目链接:http://poj.org/problem?id=2002 题意:给定n个点,问有多少种方法可以组成正方形. 思路:我们可以根据两个点求出对应正方形[有2个一个在两点左边,一个在两点右边]另外两个点的左边.例如 已知:(x1,y1) (x2,y2)则x3=x1+(y1-y2) y3= y1-(x1-x2) x4=x2+(y1-y2) y4= y2-(x1-x2)或x3=x1-(y1-y2) y3= y1+(x1-x2) x4=x2-(y1-y2) y4= y2+(x1-x2) 枚举两…
题目链接:http://poj.org/problem?id=1971 题意:给定n个坐标.问有多少种方法可以组成平行四边形.题目保证不会有4个点共线的情况. 思路:可以发现平行四边形的一个特点,就是对角线相交后得到的点.如果两点线的中点相交,那么这两条线就可以组成一个平行四边形[不需去排除4点共线],所以枚举两两组合的点对HASH成中点.然后判断所有中点,如果某个中点出现了K次,那么可以组成K*(K-1)/2个平行四边形. 用map来判断某个中点出现次数会TLE,所以可以对中点进行排序后判重复…
Connected Graph Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3156   Accepted: 1533 Description An undirected graph is a set V of vertices and a set of E∈{V*V} edges.An undirected graph is connected if and only if for every pair (u,v)…
                           Cable TV Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4678   Accepted: 2163 Description The interconnection of the relays in a cable TV network is bi-directional. The network is connected if there is…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 AC代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<queue> #include<string> #include<cmath> using namespace std; ][]; #defin…
#include <iostream> using namespace std; long long p; ]; long long solve(long long n){ ; ;i<;i++){ left = n/a[i]-; sum += left*a[i-]; m = (n%a[i]-n%a[i-])/a[i-]; ) sum += a[i-]; ) sum += n%a[i-]+; if(n<a[i]) break; } return sum; } int main() {…