Kruskal#include "iostream"#include "algorithm"using namespace std;#define MAXN 1111struct node { int x, y, l;}p[MAXN];int fa[MAXN];int n, m, k;int ...
分类:
其他好文 时间:
2015-03-13 20:36:45
阅读次数:
119
自荐者和推荐者请留言
基本算法
贪心算法:贪心算法 作者:独酌逸醉
贪心算法精讲 作者:3522021224
递归和分治:递归与分治策略 作者:zhoudaxia
图论
图的遍历(DFS和BFS): 图的遍历 作者:jefferent
最小生成树(Prim算法和Kruskal算法): 贪心算法--最小生成树 作者:独酌逸醉
Dij...
分类:
编程语言 时间:
2015-03-11 17:18:33
阅读次数:
185
最小生成树最小生成树即用最少的边权将所有给定的点连在同一联通分量中,常用kruskal和prim算法kruskal算法(适合稀疏图)最小生成树的kruskal算法,稍带并查集的应用int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); //不...
分类:
其他好文 时间:
2015-03-11 16:35:21
阅读次数:
170
http://codeforces.com/problemset/problem/160/D这道题要求哪条边存在于某个最小生成树中,哪条边不存在于最小生成树中,哪条边绝对存在于最小生成树中明显桥边一定存在于所有最小生成树中,然而怎么处理存在某个最小生成树的边呢?借助kruskal算法的性质,由小到大...
分类:
其他好文 时间:
2015-03-11 01:53:54
阅读次数:
235
最小生成树
给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这棵树就叫做生成树,如果边上有权值,那么使得边权和最小的生成树叫做最小生成树。
常见的求解最小生成树的算法有Kruskal算法和Prim算法,生成树是否存在和图是否连通是等价的,所以假定图是连通的。
Prim算法
假设有一棵只包含一个顶点v的数T,然后贪心地选取T和其他顶点之间相连的最小权值的边,并把它加...
分类:
编程语言 时间:
2015-03-10 21:36:15
阅读次数:
225
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。
克鲁斯卡尔(Kruskal)算法(只与边相关)
算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。...
分类:
编程语言 时间:
2015-03-10 17:16:34
阅读次数:
168
1、概念:给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树.
2、应用:例如:要在n个城市之间铺设光缆,主要目标是要使这
n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。
3、求最小生成树的算法
3.1 普里姆(Prim)算...
分类:
编程语言 时间:
2015-03-10 12:13:41
阅读次数:
261
UVA10397 - Connect the Campus(最小生成树)
题目链接
题目大意:给你n个点,然后再给你m个已经连接的边,问如何使得所有的点都相连并且新建的边长度之和最小。
解题思路:最小生成树,但是有m条边是已经建好的,就将这些边的权值变成0,然后用kruskal的方法来求长度。
代码:
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-03-08 14:21:23
阅读次数:
146
1 # include 2 3 # define MAX_VERTEXES 100//最大顶点数 4 # define MAXEDGE 20//边集数组最大值 5 # define INFINITY 65535//代表不可能的数(无穷大)...
分类:
编程语言 时间:
2015-03-03 18:34:20
阅读次数:
145
1.题目描述:点击打开链接
2.解题思路:本题实质上还是利用Kruskal算法来生成MST。首先按照边权值由小到大排序,对于一个连续的边集[L,R],如果使得这n个点全部连通,则一定存在一个苗条度不超过w[R]-w[L]的生成树。因此,可以从小到大枚举L,对于每一个L,利用Kruskal算法生成最小生成树后,计算苗条度,用ans取最小的即可。如果枚举结束后ans依然是INF。那么输出-1。这里可...
分类:
其他好文 时间:
2015-02-28 16:38:49
阅读次数:
159