转载地址:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html自己在学,感觉这个讲的很不错,就转载了。Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的...
分类:
编程语言 时间:
2014-11-21 17:53:28
阅读次数:
253
经典的贪心策略 Prim算法,Kruskal算法求最小...
分类:
编程语言 时间:
2014-11-19 01:52:38
阅读次数:
173
题意:判断最小生成树是否唯一,
若唯一,输出最小权值和,否则,输出 Not Unique!
判断最小生成树是否唯一的思路:
1、对图中的每一条边,扫描其他边,如果存在相同权值的边,则对该边做标记
2、然后用Kruskal算法或Prim算法求MST
3、求得MST后,如果该MST中未包含做了标记的边,即可判断MST唯一;
如果包含做了标记的边,则依次去掉这些边的一条边,再求MST,
如果求得的MST权值和原来的MST的权值一样,即可判断MST不唯一。...
分类:
其他好文 时间:
2014-11-17 17:51:02
阅读次数:
165
先判断是不是连通图,不是就输出-1。否则,把边排序,从最小的边开始枚举最小生成树里的最短边,对每个最短边用Kruskal算法找出最大边。或者也可以不先判断连通图,而是在枚举之后如果ans还是INF,说明就没有,就输出-1.#include#include#include#include#includ...
分类:
其他好文 时间:
2014-11-15 18:21:34
阅读次数:
202
此题是最基础的最小生成树的题目,有两种方法, 一个是prim一个是kruskal算法,前者利用邻接矩阵,后者是利用边集数组prim算法的思想是:一个点一个点的找, 先找从第一个点到其他点最小的, 把权值存放到一个lowcost的数组中,然后继续找下一个点,然后更新lowcost数组,注意,这时的lo...
分类:
其他好文 时间:
2014-11-08 19:33:19
阅读次数:
214
%% matlab练习程序(Kruskal最小生成树)% Kruskal算法类似于连通分支算法,感觉和过去实现过的连通区域标记算法非常像。% 步骤:% 1.对于一个图,将图的每条边提取出来从小到大进行排序。% 2.将已排序的边依次加入到新图中,如果新图中出现了环,那么就舍弃这条边。% 3.不断重复第...
分类:
其他好文 时间:
2014-10-26 14:13:59
阅读次数:
281
题目链接:http://poj.org/problem?id=1251思路:使用最小生成树算法,可以求解。需要注意的树Kruskal算法中使用了并查集,对于并查集用法需要注意。代码:#include #include using namespace std;const int N = 30, M =...
分类:
其他好文 时间:
2014-10-23 20:32:48
阅读次数:
204
orz,感觉对最小生成树的理解又加进了一步。ps:不得不说对于经典算法的探究是永无止境的,只能通过交流和增长见识来学习和体会,自己研究确实困难。让我们来深入分析一下kruskal算法。算法过程不多说,直接证明:假设算法考虑到第k条边,这时发现边的两端已经在同一个连通块里面了(称为“冲突”),为了使这...
分类:
Web程序 时间:
2014-10-07 17:41:53
阅读次数:
151
大水题,真不知道出题者是怎么把这么水的题出的这么长的TAT其实这题在于考语文水平,一共三个要求,前两个要求意思就是要选出的道路是树形的,最后一个要求就是要权值最小,于是整个题意说白了就是求一棵MST,以前向星的形式给出最容易想到kruskal算法,于是这题顺利结束,从看题一直到调试结束半个小时搞定…...
分类:
其他好文 时间:
2014-10-05 16:20:38
阅读次数:
197
一,什么是最小生成树
1,什么是生成树
如果连通图G的一个子图是一棵包含G所有顶点的树,则该子图成为G的生成树。
生成树是含有该连通图全部顶点的一个极小连通子图,它并不是唯一的,从不同的顶点出发可以得到不同的子树。含有N个顶点的连通图的生成树有N-1条边。
2,如何求一个连通图
的生成树
要求一个连通图的生成树只需要从一个顶点出发,做一次深度优先或...
分类:
其他好文 时间:
2014-10-04 20:58:47
阅读次数:
155