题目来源:http://poj.org/problem?id=2485 用贪心策略构成最小生成树,有常用的两种算法Prim算法和Kruskal算法。本题我采用的是Prim算法。设带权图为V,首先随便选一点作为构成一个真子集S,然后在采取贪心策略,选取V-S中的某一点到S中一点的最小距离并将该点添.....
分类:
其他好文 时间:
2014-07-31 16:20:46
阅读次数:
219
#include #include #define INF 100000000int map[101][101];int dis[101];int vis[101];int n;long long ans = 0;void prim(){ int i,j; int min,pos; ...
分类:
其他好文 时间:
2014-07-31 13:08:46
阅读次数:
236
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=193#problem/Eprim算法 思想和步骤总结(自己所写)dis【】,map【】【】,vis【】,pos ,min,ans(主要定义的变量)首先,prim算法用于计算图边径长...
分类:
Web程序 时间:
2014-07-31 12:08:46
阅读次数:
301
Dijkstra算法的标记和结构与prim算法的用法十分相似。它们两者都会从余下顶点的优先队列中选择下一个顶点来构造一颗扩展树。但千万不要把它们混淆了。它们解决的是不同的问题,因此,所操作的优先级也是以不同的方式计算的:Dijkstra算法比较路径的长度,因此必须把边的权重相加,而prim算法则直接...
分类:
其他好文 时间:
2014-07-29 12:31:36
阅读次数:
217
1、生成树的概念连通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树。生成树是连通图的极小连通子图。所谓极小是指:若在树中任意增加一条边,则将出现一个回路;若去掉一条边,将会使之变成非连通图。 生成树各边的权值总和称为生成树的权。权最小的生成树称为最小生成树。2、最小生成树的性质...
分类:
编程语言 时间:
2014-07-28 23:49:54
阅读次数:
387
Prim算法的思想是,首先从任意一个节点出发,逐渐生成,直至该树覆盖了所有的V中的节点。
如下图:
图中的黑色的边即是最小生成树中的边。
实现Prim算法的关键便是,如何选择一条 “权值较小并且对于已有生成树中的点集合S来说是安全的边”,此处的安全指的是:
加入该边e之后,S仍然是一个树。
于是:对于图 G = (V, E) Prim的执行步骤大致为:
1 从任意节点r...
分类:
其他好文 时间:
2014-07-28 16:10:53
阅读次数:
205
一个连通图的生成树是一个极小的连通子图,它包含图中全部的顶点(n个顶点),但只有n-1条边。最小生成树:构造连通网的最小代价(最小权值)生成树。prim算法在严蔚敏树上有解释,但是都是数学语言,很深奥。最小生成树MST性质:假设N=(V,{E})是一个连通网,U是顶点集V的一个非空子集。若(u,v)...
分类:
其他好文 时间:
2014-07-28 15:03:23
阅读次数:
296
MST是一个非常非常经典的问题了,ZOJ-1203则是一题MST的裸题,题目的意思就是给定n个坐标,连起n个点最短是多长。
我用的是prim算法,创建图什么的这个大家都懂。
(好久没写过题解了,不知道说些什么好~哎。)
/***********************************************************
> OS : Linux 3....
分类:
其他好文 时间:
2014-07-28 00:18:09
阅读次数:
219
Prim:算法步骤:1.任意结点开始(不妨设为v1)构造最小生成树: 2.首先把这个结点(出发点)包括进生成树里, 3.然后在那些其一个端点已在生成树里、另一端点还未在生成树里的所有边中找出权最小的一条边, 4.并把这条边、包括不在生成树的另一端点包括进生成树, …。 5.依次类推,直至将所有结点都...
分类:
其他好文 时间:
2014-07-26 14:47:40
阅读次数:
236
题目大意很简单就是给你城市的数量,和可以修建的铁路及其长度,如果连通,输出最小的总长,否则输出impossible题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2122我用的prim算法一直报错也不知道为什么,后来改用Kruscal算法就好了~~T T...
分类:
其他好文 时间:
2014-07-26 14:24:01
阅读次数:
352