~. 最近数据结构课讲到了prim算法,然而一直使用kruskal算法的我还不知prim的思想,实在是寝食难安,于此灯火通明之时写此随笔,以祭奠我睡过去的数据结构课。一,最小生成树之prim prim的思路就是先任取一点(记为st)加入集合(数组s[]) ,然后在顶点集(数组v[]) 中 未被取的....
分类:
编程语言 时间:
2015-06-05 00:07:54
阅读次数:
165
根据图的深度优先遍历和广度优先遍历,可以用最少的边连接所有的顶点,而且不会形成回路。这种连接所有顶点并且路径唯一的树型结构称为生成树或扩展树。实际中,希望产生的生成树的所有边的权值和最小,称之为最小生成树。
常见的最小生成树算法有Kruskal算法和Prim算法。
Kruskal算法每次选取权值最小的边。然后检查是否加入后形成回路,如果形成回路则需要放弃。最终构成最小生成树。n个顶点的图最小生...
分类:
编程语言 时间:
2015-06-04 17:10:21
阅读次数:
151
题目链接:
csu1651
题解思路 :
用到kruskal算法的思想:
枚举这条路径最小的边作为kruskal算法的起始边
当某条边加入一个 边集 后满足起点和终点在一个集合,即可得到一个答案
这些答案的最小值即为answer
中间会用到几个剪枝
代码:
#include
#include
#include
#define MAXN 1...
分类:
其他好文 时间:
2015-06-04 11:54:36
阅读次数:
101
一、数论算法 1.求两数的最大公约数 2.求两数的最小公倍数 3.素数的求法 A.小范围内判断一个数是否为质数: B.判断longint范围内的数是否为素数(包含求50000以内的素数表):二、图论算法1.最小生成树A.Prim算法: B.Kruskal算法:(贪心) 按权值递增顺序删去图中的边,若...
分类:
编程语言 时间:
2015-06-02 21:53:26
阅读次数:
186
题解:用kruskal算法,把每个点和右、下两个方向的点的边存起来,权值就是差值的绝对值,然后按升序排序,用并查集找到最小生成树。#include
#include
#include
#include
using namespace std;
const int N = 1005;
int m, n, g[N][N],...
分类:
其他好文 时间:
2015-06-01 09:47:04
阅读次数:
115
求加权连通图的最小生成树的算法。kruskal算法总共选择n-
1条边,(共n条边)所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。kruskal算法分e
步,其中e 是网络中边的数目。按耗费递增的顺序来考虑这e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集合中会出现环路,则将其...
分类:
编程语言 时间:
2015-05-27 15:58:08
阅读次数:
171
1 #include "stdio.h" 2 #include "stdlib.h" 3 struct edge 4 { 5 int m; 6 int n; 7 int d; 8 }a[5010]; 9 int cmp(const void *a,const void *b...
分类:
编程语言 时间:
2015-05-26 20:26:59
阅读次数:
147
package org.loda.graph;
import org.loda.structure.MinQ;
import org.loda.structure.Queue;
import org.loda.util.In;
/**
*
* @ClassName: KruskalMST
* @Description:Kruskal最小生成树算法
* @author...
分类:
编程语言 时间:
2015-05-26 06:54:36
阅读次数:
168
首先是定义上
最小生成树能够保证整个拓扑图的所有路径之和最小,但不能保证任意两点之间是最短路径。
最短路径是从一点出发,到达目的地的路径最小。
实现方法
1. 最小生成树
最小生成树有两种算法来得到:Prims算法和Kruskal算法。
Kruskal算法:根据边的加权值以递增的方式,一次找出加权值最低的边来构建最小生成树,而且规定:每次添加的边不能造成生成树有回路,知道找...
分类:
其他好文 时间:
2015-05-25 11:29:02
阅读次数:
274
畅通工程再续
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17713 Accepted Submission(s): 5528
Problem Description
相信大家都听说一个“百岛湖”的地方吧...
分类:
编程语言 时间:
2015-05-21 14:16:47
阅读次数:
206