做一个医学项目,当中在病例评分时会用到单源最短路径的算法。单源最短路径的dijkstra算法的思路例如以下:如果存在一条从i到j的最短路径(Vi.....Vk,Vj),Vk是Vj前面的一顶点。那么(Vi...Vk)也必然是从i到k的最短路径。Dijkstra是以最短路径长度递增,逐次生成最短路径的算...
分类:
Web程序 时间:
2014-06-27 17:21:16
阅读次数:
308
第一节 镖局运镖-图的最小生成树所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。最小生成树的三个性质最小生成树不能有回路最小生成树可能是一个,也可能有多个最小....
分类:
其他好文 时间:
2014-06-27 14:46:30
阅读次数:
187
一、前言画线与画点基本上代码是相同。区别在于glBegin()的参数。绘制的框架代码可以使用Delphi下OpenGL2d绘图(01)-初始化中的代码。修改的部份为 Draw 函数的内容。二、画线GL_LINES:把每一个顶点作为一个独立的线段,顶点2n-1和2n之间共定义了n条线段,总共绘制N/2...
分类:
其他好文 时间:
2014-06-27 12:01:06
阅读次数:
188
最小切割问题
首先介绍什么是切割。切割就是将一张图中的顶点分成两部分A和B。
接下来介绍一下什么是容量。容量是A区到B区所有的边权重之和。
最小切割就是求一张图中使得容量最小的切割方式。
最小切割的应用
最小切割在国家的拆分时会用到。著名的苏联解体事件就是通过计算最小切割来实现国家的拆分。在建模的时候将城市作为图...
分类:
其他好文 时间:
2014-06-27 08:10:59
阅读次数:
320
题目的意思是给一个01的字符串数组,让你去求解满足棋盘条件的最大棋盘棋盘的条件是: 相邻元素的值不能相同此题有点像求全1的最大子矩阵,当时求全1的最大子矩阵是用直方图求解的本题可以利用直方图求解首先找到子矩阵的两个顶点坐标(x0,y0),(x1,y1)我们能遍历开始和结束列,y0=i, y1=j,....
分类:
其他好文 时间:
2014-06-26 18:03:24
阅读次数:
232
Description输入一个无向图G,计算G的连通分支数。Input有多个无向图数据。每个无向描述的第1行是两个整数n和e,分别表示顶点数和边数。接着有e行,每行有2个整数a、b,分别是一条边的两个端点(起点和终点)。两个图之间空一行。Output对每个无向图,输出图中连通分支个数。Sample ...
分类:
其他好文 时间:
2014-06-26 14:53:16
阅读次数:
328
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2896最小生成树:n个顶点n-1条边本题因为有50000个点,所以只能用Kuscal#include#include#include#include#inc...
分类:
其他好文 时间:
2014-06-26 14:40:34
阅读次数:
279
最短路径问题就是给定一个图,这个图中的边是有方向和权重的。求s到t的最短路径。
最短路径问题其实分为很多种。按照起点和终点来分,可以分为:
从一个顶点到另一个顶点
从一个顶点到其他所有顶点
从所有顶点到所有顶点
按照边的权重来分可以分为:
非负权
任意权
欧几里德权
按照是否有环可以分为
...
分类:
其他好文 时间:
2014-06-25 08:36:29
阅读次数:
149
在计算最短路径之前,往往会先计算最短路径树,也就是计算从一个顶点出发,到其余所有顶点的最短距离。
有了最短路径树之后,路径和距离就非常容易实现了:
public double distTo(int v) {
return distTo[v];
}
public Iterable pathTo(int v) {
Stack result = new Sta...
分类:
其他好文 时间:
2014-06-25 08:16:29
阅读次数:
246
本题分两步:
1 使用Tarjan算法求所有最大子强连通图,并且标志出来
2 然后遍历这些节点看是否有出射的边,没有的顶点所在的子强连通图的所有点,都是解集。
Tarjan算法就是模板算法了。
这里使用一个数组和一个标识号,就可以记录这个顶点是属于哪个子强连通图的了。
然后使用DFS递归搜索所有点及其边,如果有边的另一个顶点不属于本子强连通图,那么就说明有出射的边。
有难度的题目:
...
分类:
其他好文 时间:
2014-06-25 07:19:31
阅读次数:
241