上一节《Cocos2d-x 地图行走的实现1:图论与Dijkstra算法》:http://blog.csdn.net/stevenkylelee/article/details/38408253
本节实践另一种求最短路径算法:SPFA
1.寻路算法实现上的优化
上一节我们实现的Dijkstra用了一个哈希表来保存搜索到的路径树。如果能用直接的访问的方式,就不要用哈希表...
分类:
其他好文 时间:
2014-08-08 21:30:26
阅读次数:
384
题目来源:http://poj.org/problem?id=1511 题目很长,花了不少时间才理解题意,目的就是为了求出来回两次最小路径(即为本题的差旅费)之和,第一次从CCS(1)出发到各个点路径最小,SPFA算法没得说,回来时终点是确定的都是CCS(1),相当于把路径反过来,即把有向图去反方....
分类:
其他好文 时间:
2014-08-01 23:02:12
阅读次数:
277
题意:给定n中货币,以及它们之间的税率,A货币转化为B货币的公式为 B=(V-Cab)*Rab,其中V为A的货币量,
求货币S通过若干此转换,再转换为原本的货币时是否会增加
分析:这个题就是判断是否存在正权回路,可以用bellman-ford算法,不过松弛条件相反
也可以用SPFA算法,判断经过转换后,转换为原本货币的值是否比原值大、、、...
分类:
其他好文 时间:
2014-07-24 23:32:33
阅读次数:
297
题意:给出青蛙A,B和若干石头的坐标,现青蛙A想到青蛙B那,A可通过任意石头到达B,
问从A到B多条路径中的最长边中的最短距离
分析:这题是最短路的变形,以前求的是路径总长的最小值,而此题是通路中最长边的最小值,每条边的权值可以通过坐标算出,因为是单源起点,直接用SPFA算法或dijkstra算法就可以了...
分类:
其他好文 时间:
2014-07-24 12:27:18
阅读次数:
250
本题其实也可以使用SPFA算法来求解的,不过就一个关键点,就是当某个顶点入列的次数超过所有顶点的总数的时候,就可以判断是有负环出现了。
SPFA原来也是可以处理负环的。
不过SPFA这种处理负环的方法自然比一般的Bellman Ford算法要慢点了。
#include
#include
#include
const int MAX_N = 501;
const int MAX_M =...
分类:
其他好文 时间:
2014-07-13 18:16:50
阅读次数:
352
判断给定的有向图中是否存在负环。 利用 spfa 算法判断负环有两种方法: 1) spfa 的 dfs 形式,判断条件是存在一点在一条路径上出现多次。 2) spfa 的 bfs 形式,判断条件是存在一点入队次数大于总顶点数。 代码如下:法 1 (spfa 的 dfs 形式):#include #i...
分类:
其他好文 时间:
2014-06-18 14:12:46
阅读次数:
1042
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。 输入格式 第一行两个整数n,
m。 接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。 输出格式 共n-1行,第i行表示1号点到i+1号...
分类:
其他好文 时间:
2014-05-28 14:36:45
阅读次数:
248
最短路径全集
使用最短路算法。
锦囊2
使用Dijkstra算法,此图的边数比点数的平方要少很多,因此应该使用带堆优化的Dijkstra。
问题描述
给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1...
分类:
其他好文 时间:
2014-05-15 01:33:35
阅读次数:
788