码迷,mamicode.com
首页 >  
搜索关键字:dijkstra and floyd    ( 3573个结果
A*算法最简单的介绍
A*搜寻算法,俗称A星算法,作为启发式搜索算法中的一种,这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。 A*算法最为核心的部分....
分类:其他好文   时间:2014-07-07 11:09:01    阅读次数:212
《数据结构与算法分析:C语言描述》复习——第九章“图论”——单源带权最短路径问题
2014.07.04 18:32简介: 给定一个有向图,边的权值可能各不相同(不包含负权值)。给定一个起点s,找出起点到所有顶点的最短路径距离。描述: 这就是Dijkstra算法的用武之处了。 实际上,如果从无权值的情况出发,来思考带权最短路径问题的解法,那么应该只需要修改几行之前BFS的代码...
分类:编程语言   时间:2014-07-06 18:52:39    阅读次数:255
HDU 1385 Minimum Transport Cost 最短路径题解
本题就是使用Floyd算法求所有路径的最短路径,并且需要保存路径,而且更进一步需要按照字典顺序输出结果。 还是有一定难度的。 Floyd有一种很巧妙的记录数据的方法,大多都是使用这个方法记录数据的。 不过其实本题数据不是很大,一般太大的数据也无法使用Floyd,因为效率是O(N^3)。 所以其实也可以使用一般的Floyd算法,然后增加个三维数组记录数据。下面就是这种做法,0ms过了...
分类:其他好文   时间:2014-07-04 07:18:33    阅读次数:193
POJ 3268 Silver Cow Party
求来回最短路加起来最长的一条。 两次SPFA,然后选某个点的来回最长。(有向图) Dijkstra+邻接矩阵 比较方便建立 反向图。 我用SPFA+2个邻接表(正图+反图),C++ 32ms。 #include #include #include #include #include #include #include #include #include #include #include ...
分类:其他好文   时间:2014-07-03 16:01:33    阅读次数:173
POJ 2253 Frogger
多种方法,可以理解为最短路变形。 也可以当作最小生成树。 题意理解就很简单。 青蛙A到青蛙B之间距离中某一次跳的距离,选出最大的。 写了2个最短路的。SPFA 和 Dijkstra。 顺便熟悉一下最小生成树,也写个Kruskal 的。 SPFA: #include #include #include #include #include #include #...
分类:其他好文   时间:2014-07-03 13:52:06    阅读次数:146
对dijkstra的浅见(引例 poj 2457)
非负权值的但源最短路之 dijkstra dijkstra-------我认为这个算法的核心思想是:最短路径长度递增。 怎么理解呢?       假如有一条最短路径已经存在了,那么其中任意两点的路径都将是最短的,否则假设是不成立了。 算法实现过程:      已当前点 pos 更新,dis[ i ]的值(即 点 i 到源点的距离)     找出dis[ i ] 最小的 i 点...
分类:其他好文   时间:2014-07-02 17:00:49    阅读次数:216
HDU 2923 Einbahnstrasse
英语渣就是这点不好。。。 巨恶心这种描述多的题。。 大意就是求 从一个点出发,到某些点,然后又从那些点返回的距离之和的 最小值。 Dijkstra+邻接矩阵。 正向建图,求出出发距离,然后swap边,求出 返回距离。 注意的是 车可能有重复的。某个点有多少车就需要乘以车的数量。 #include #include #include #include #in...
分类:其他好文   时间:2014-07-02 07:16:49    阅读次数:253
poj 1511 Dijkstra的另一种用法---求其他点到源点的最短路
传送门:http://poj.org/problem?id=1511...
分类:其他好文   时间:2014-07-01 16:05:38    阅读次数:169
CodeForces 21D Traveling Graph 状压dp+欧拉回路
题目链接:点击打开链接 题意: 给定n个点m条边的无向图 求从1点开始经过每条边至少一次最后回到1点的最小路程 显然就是找一条路径可重复的欧拉回路 思路: 首先对于欧拉回路的结论是:所有点的度数都为偶数 因为所有边至少经过一次,那么可以把题意转换成加最少多少条边使得图满足以上结论 而加的边目的是为了把奇度数转成偶度数,先floyd一下得到任意点间加边的最小花费 dp[i]表示状态...
分类:其他好文   时间:2014-07-01 14:47:43    阅读次数:274
poj 1695 Magazine Delivery 记忆化搜索
dp[a][b][c],表示三个人从小到大依次在a,b,c位置时,距离结束最少的时间。 每次选一个人走到c+1位置搜索就好了。 坑点在于不能floyd,估计题目没说清楚,意思就是如果没送Li,那么Li~n的点连去都不能去。 #include #include #include #include using namespace std; #define INF 0x3f3f3f3f int d...
分类:其他好文   时间:2014-07-01 09:26:40    阅读次数:248
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!