两道Prim解法范例题型,简单的裸Prim,且两题相较以边为重心的Kruskal解法而言更适合以点为重心扩展的Prim解法。 ZOJ1586-QS Network 题意:见Code 题解:直接的MST题型,本题的图为稠密图,因此适合以点为扩展导向的Prim算法(代码量也较少)。 大抵是先以某点A为中 ...
分类:
其他好文 时间:
2016-04-09 00:14:48
阅读次数:
218
图的基本概念:有向图和无向图G(V,E),顶点集合V(G),边集合E(G),基图,完全图,有向完全图,稀疏图,稠密图,度数,出度,入度,最小度,最大度,度序列,二部图(二分图),完全二部图,同构,子图,生成树,路径,简单路径,回路,简单回路,连通,连通分量,权值,加权图,顶点数组,邻接矩阵。 序列是
分类:
其他好文 时间:
2016-02-14 20:56:53
阅读次数:
217
题目链接:Truck History 题意就是N个卡车的型号,一代一代的发展,两辆卡车的型号中 不同字母的个数代表着两辆卡车的距离,确定一个点。遍历到全部的点,使之这个距离最小。 非常明显最小生成树,稠密图。1次AC,水过 PS:厚颜无耻的先看了Discuss才做的,否则我也漏“.”。罪过罪过 #i
分类:
其他好文 时间:
2016-02-07 17:29:46
阅读次数:
183
【概念】疏松图&稠密图: 疏松图指,点连接的边不多的图,反之(点连接的边多)则为稠密图。 Tips:邻接矩阵与邻接表相比,疏松图多用邻接表,稠密图多用邻接矩阵。 邻接矩阵: 开一个二维数组graph[ ][ ]来记录图中点a与点b之间是否连通,初始化为0(或者-1之类的看情况);如果图中有可忽略的重...
分类:
其他好文 时间:
2016-02-02 01:09:46
阅读次数:
235
本次利用一个最优树问题进行举例,查找最优树的有效算法有Prim和Kruskal两种,分别应用于稀疏图与稠密图上,以下为简单描述:1).输入:一个加权连通图,其中顶点集合为V,边集合为E;2).初始化:Vnew= {x},其中x为集合V中的任一节点(起始点),Enew= {},为空;3).重复下列操作...
分类:
编程语言 时间:
2015-12-26 13:26:02
阅读次数:
1262
以(x,y)坐标的形式给出n个点,修建若干条路使得所有点连通(其中有两个给出的特殊点必须相邻),求所有路的总长度的最小值。因对所修的路的形状没有限制,所以可看成带权无向完全图,边权值为两点间距离。因是稠密图,故用邻接矩阵存储更好(完全图,边数e达到n(n-1)/2)。至此,可将问题抽象为求最小生成树...
分类:
其他好文 时间:
2015-11-01 21:15:46
阅读次数:
263
题意:n个点修路,要求总长度最小,但是有两个点p、q必须相连思路:完全图,prim算法的效率取决于节点数,适用于稠密图。用prim求解。p、q间距离设为0即可,最后输出时加上p、q间的距离prim算法:#include#include#include#includeusing namespace s...
分类:
其他好文 时间:
2015-09-04 21:14:53
阅读次数:
209
//稠密图,邻接矩阵表示struct edge{ int v, w, val; edge(int v = -1, int w = -1, int val = NOEDGE) :v(v), w(w), val(val){}};struct denseGraph{ int Vcnt, ...
分类:
其他好文 时间:
2015-08-27 10:49:30
阅读次数:
147
该题是Floyd算法的一个巧妙变形,虽然AC率很高,但是真正要灵活变化到做出该题,显然要明白Floyd算法的思想和原理 ,弄清楚为什么可以这样更改算法的核心部分。
Floyd算法其实利用了动态规划的思想,适合求解几点不是很多的稠密图 。
我们都知道,动态规划在利用循环嵌套求解时是要规定一个次序的,这样才能将状态成功的转移 。该题的次序就是由k来定义的,从小到大枚举k,定义其意义为i和j之...
分类:
其他好文 时间:
2015-08-17 12:05:15
阅读次数:
121
1.primprim算法的效率取决于节点数,适用于稠密图。#include#include#includeusing namespace std;#define INF 0x7fffffff#define MAXN 128bool vis[MAXN];int lowc[MAXN];int prim(...
分类:
其他好文 时间:
2015-08-16 10:36:24
阅读次数:
173