最短路径
路径的概念:
在一个无权的图中,若从一顶点到另一顶点存在着一条路径,则称该路径长度为该路径上所经过的边的数目,它等于该路径上的顶点数减1。
由于从一顶点到另一顶点可能存在着多条路径,每条路径上所经过的边数可能不同,即路径长度不同,我们把路径长度最短(即经过的边数最少)的那条路径叫做最短路径,其路径长度叫做最短路径长度或最短距离。
对于带...
分类:
编程语言 时间:
2014-12-29 15:25:03
阅读次数:
273
A*算法详尽的入门教程
一:为什么我们需要A*算法
求最短路径或者最小代价的算法有很多。其本质就是图的搜索策略。图的直接搜索方法有很多种,比较典型的是广度优先搜索、深度优先搜索。所谓的广度优先搜索是每到达一个节点就优先遍历该节点的所有相邻节点。而对应的深度优先搜索是指一直延伸到从未达到过的节点。基于以上两种基本思想的最短路径算法有Dijkstra算法和Floyd算法。当搜索完毕也遍历了整...
分类:
编程语言 时间:
2014-12-26 18:46:59
阅读次数:
226
题目:地铁换乘
描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。
地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 ...
分类:
其他好文 时间:
2014-12-26 09:44:58
阅读次数:
225
Dijkstra算法 假设找出v0到其他顶点的最短路径 s[N]初始化为0,如果找到v0到vn的最短路径则把s[n]置一 dist[N]初始化为v0到其他顶点的直接路径,两个没相连的顶点用MAX值代入 1.从所有未找到最短路径的顶点中找出dist最小的数值的下标u,所以s[u]置位。 2.用v0到v...
分类:
其他好文 时间:
2014-12-26 09:39:41
阅读次数:
195
此题可以用bellman-ford算法来求解。bellman-ford算法是求解最短路径,此题是求解
“最大路径”,条件与松弛条件相反,因此求的是无限松弛的最大正权路径,可以用bellman-ford算法去解题。
此题中的“最大路径”其实就是求改变点数下是否有增加更新点。
我们用dis[i]来表示第i种货币的钱数。
我们求最大那么需将dis[i]初始话为0,再用bellman-fo...
分类:
其他好文 时间:
2014-12-25 22:10:42
阅读次数:
230
题目大意:从三维空间的(0,0,0)出发到(a-1,b-1,c-1),每移动一个都要时间加一,计算最短时间根据六个方向,开个bfs,像spfa那样计算最短路径就行了,但是要1200多ms,也不知道有没有更好的方法 1 #include 2 #include 3 #include 4 #incl...
分类:
编程语言 时间:
2014-12-25 16:03:21
阅读次数:
205
单源最短路,复杂度是O(N²),堆优化的是O(NlogN)。基本思想是贪心,每次都加入一个当前最近的点,可以证明每次当时最近的点就是当前最短的路径。因此,所有点都加入之后,起点到所有点的最短路径就都求出来了。 在实现中,需要注意的是,在堆中的某个点i,不只要存当前到i的最短路径长度d[i],还...
分类:
编程语言 时间:
2014-12-24 17:42:19
阅读次数:
229
有向无环图一个无环的有向图称做有向无环图(directed acycline praph)。简称DAG 图。DAG 图是一类较有向树更一般的特殊有向图,dijistra算法摘自 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833...
分类:
编程语言 时间:
2014-12-24 01:14:23
阅读次数:
238
题目大意:求点1到所有点最短路径的最大值思路:水题,单源最短路,网上解题清一色dijkstra,但是点数小于100显然floyd更简洁嘛#include#include#define maxn 101#define inf 100000using namespace std;int read(){i...
分类:
其他好文 时间:
2014-12-24 01:11:33
阅读次数:
132
题目大意:给你一个图,求连接所有点的最短路径。
思路:Prim算法求图的最小生成树,模板题。...
分类:
其他好文 时间:
2014-12-23 22:39:58
阅读次数:
186