畅通工程再续Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合...
分类:
其他好文 时间:
2014-07-22 22:52:58
阅读次数:
278
int prim(){ int minid, i, j; double mincost; for(i = 2; i 0){ mincost = lowcost[j]; minid = j; } ...
分类:
其他好文 时间:
2014-07-19 22:32:26
阅读次数:
204
最小生成树之prim算法 边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。最小生成树(MST):权值最小的生成树。生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的...
分类:
其他好文 时间:
2014-07-19 18:20:31
阅读次数:
367
广度优先搜索(BFS)算法
宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。
已知图G=(V,E)和一个源顶点s,宽度优先搜索以一种系统的方式探寻G的边,从而“发现”s所能到达的所有顶点,并计算s到所有这些顶点的距离(最少边数),该算法同时能生...
分类:
其他好文 时间:
2014-07-19 11:32:04
阅读次数:
535
这的确也是个大坑;其实在这是到很简单的最小生成树的题目,但是数据量却很大;用G++提交会超时,用C++不会超时,而且速度超快;又长见识了。可惜长得不是做题的能力,而是知道它到底有多坑。 1 #include 2 #include 3 using namespace std; 4 const int ...
分类:
其他好文 时间:
2014-07-19 11:17:24
阅读次数:
194
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。
它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。
基本思想
通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。
此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长...
分类:
其他好文 时间:
2014-07-18 22:17:53
阅读次数:
225
题目链接:http://poj.org/problem?id=1789
思路:把每一行看成一个一个点,每两行之间不懂得字符个数就看做是权值。然后用kruskal算法计算出最小生成树
我写了两个代码一个是用优先队列写的,但是超时啦,不知道为什么,希望有人可以解答。后面用的数组sort排序然后才AC。
code:
数组sort排序AC代码:
#include
#include
#includ...
分类:
其他好文 时间:
2014-07-18 12:27:55
阅读次数:
242
这道题涉及次小生成树,有必要先弄明白次小生成树是怎么一回事。次小生成树,顾名知义。一个定理是,次小生成树可以由最小生成树交换一条边得到。这怎么证明,可以上网搜一下。但有必要提醒的是,交换过来的这样一条边,必须是未成使用过的(即不是最小生成树的边)。而且,交换走的边,必须是已存在的,而且是两点间最短路...
分类:
其他好文 时间:
2014-07-18 10:32:56
阅读次数:
325
dijkstra算法floyd算法最小生成树将所有的分成两个集合,一个是已经按照最小值排完顺序的,另外一个是没有排完顺序的,每次在查找从排完顺序的集合到未排完顺序的集合的最短路径,然后将未排完顺序的集合里面的值加入到已排完顺序的集合里。最小生成树算法:例题,第一行输入N和M,代表点的个数和他们之间存...
分类:
其他好文 时间:
2014-07-17 23:20:31
阅读次数:
335
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const int maxn=105;int...
分类:
其他好文 时间:
2014-07-16 14:38:43
阅读次数:
218