最小生成树
一个有 n 个结点的连通图的最小生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的权值总和最小的边。
刘汝佳>P343详细介绍了最小生成树相关的知识。
下面直接给出Kruskal算法的模板:
#include
#include
#include
#include
#include
using namespace std...
分类:
其他好文 时间:
2015-04-05 06:44:04
阅读次数:
140
题意:给出n个节点的图,求最大边减最小边尽量小的值的生成树首先将边排序,然后边的区间,判定在该区间内是否n个点连通,如果已经连通了,则构成一颗生成树,则此时的苗条度是这个区间内最小的(和kruskal一样,如果在已经构成一颗树的基础上,再继续加入边,由于边都是排过序的,再加入的边一定会更大)再维护一...
分类:
其他好文 时间:
2015-04-04 01:06:59
阅读次数:
152
题目:在一个平面上有很多点,其中一些点已经被直线段连接,现在要把所有点连成一个整体,
要求新加入的直线段长度和最小。
分析:最小生成树。这里使用kruskal算法,先把一直线段的集合合并(并查集),然后在计算即可。
说明:╮(╯▽╰)╭。
#include
#include
#include
#include
#include
#include
usi...
分类:
其他好文 时间:
2015-04-03 19:25:03
阅读次数:
146
poj——2031 最小生成树(MST) Kruskal算法Building a Space StationTime Limit:1000MSMemory Limit:30000KTotal Submissions:4985Accepted:2503DescriptionYou are a memb...
分类:
编程语言 时间:
2015-03-31 22:08:35
阅读次数:
186
Fibonacci TreeTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2588 Accepted Submission(s): 822Problem Description
Coach Pang is intereste...
分类:
其他好文 时间:
2015-03-30 23:06:51
阅读次数:
207
const int MAXN = 110;//点
const int MAXM = 10000;//边int f[MAXN];//并查集使用struct Edge
{
int u, v, w;
}edge[MAXN];int tol;//边数 初始化 0void addedge(int u,int v,int w)
{
edge[tol].u = u;
edge[tol].v...
分类:
其他好文 时间:
2015-03-29 21:01:45
阅读次数:
165
畅通工程
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 19257 Accepted Submission(s): 8188
Problem Description
省政府“畅通工程”的目标是使全省任何...
分类:
编程语言 时间:
2015-03-28 14:24:52
阅读次数:
169
题目链接:点击打开链接
解题思路:
根据相互之间的关系,可以转化一个无向图中最大权森林的问题。也就是把边权取反,然后用最小生成树求解。
本题用邻接表存储,Kruskal求最小生成树。
完整代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-03-28 14:24:45
阅读次数:
109
edge = [[1,2,1],[1,2,3],[1,3,2],[2,3,1],[2,4,4],[3,4,2]]
#这是用边集合表示的图
s = [[]]
n = 4
for i in range(n):
s.append([i+1])
#print s
#compare方法是为了对边排序写的,作为参数传入sort,就可以排序了
def compare(a,b):
if(a[2...
分类:
编程语言 时间:
2015-03-27 22:26:43
阅读次数:
242