
最短路径
stloztoeplitz
严格标准不抱怨,宽松要求自提高
展开
-
Dijkstra算法(单源最短路径)
原文出处: http://www.cnblogs.com/dolphin0520/ Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。 一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..V转载 2016-11-26 14:38:37 · 290 阅读 · 0 评论 -
1321. Robot
最开始想用动态规划,但是水平太低,写出来居然超时了。 接下用dijkstra算法,dijkstra算主要分为初始化,找最小,修改,跳出。 这里我不知道为什么用if(tmp==INF) return ans[er][ec]会出错,明明在调试的时候查看的值都是正确的,但是在dos命令行中返回的值确实错误的。 debug很久发现是if后面多打了个分号,,,, 主要这中其实是row*column个顶原创 2016-12-03 10:28:05 · 259 阅读 · 0 评论 -
畅通工程续
暂时写了两种算法flody和dijkstra算法,两种算法我都转载了相关的文章在我的博客中。 感觉还可以写dfs和bfs的算法,以后再更新。 flody#include<iostream> using namespace std; const int INF = 0x3f3f3f3f; int const maxn = 210; int map[maxn][maxn]; int main()原创 2016-11-26 15:36:58 · 312 阅读 · 0 评论 -
1937. 导游
一看就是dijkstra算法的变形了。 但是还是要强调的是: 1)用邻接矩阵来表达图的时候,初始化,选择,更改的目的点都是i或者j,循环是对所有的顶点循环 2)用邻接表来表达图的时候,初始化,更改的时候是对目的链来操作,操作点位v[k][j].end,循环也是对链来循环。这个很容易错,我就把d[v[k][j].end]写成了d[j]或d[v[k][j].cost] 注意在传统的dijkstr原创 2016-12-03 23:59:06 · 281 阅读 · 0 评论 -
地牢逃脱
是对最短路径的变形,即是就最短路径当中的最长路径,注意修改即可。bfs,dfs都可以实现,现在附上dfs的实现方式。#include <iostream> #include <cstring> using namespace std; int const maxn = 100; char data[maxn][maxn]; int r,c; int vis[maxn][maxn]; int dr[m原创 2017-01-19 13:24:41 · 266 阅读 · 0 评论