最短路
记录图论入门最短路问题,涉及刷题以及对算法本身的思考。
KaaaterinaX
我是废物
展开
-
图论入门-最短路问题
最短路基础算法一览一、朴素版Dijkstra849. Dijkstra求最短路 Idijkstra算法的基本原理是遍历寻找离起点距离最短且没有被访问过的点,标记此点,将其并入起点。此处为最简单的Dijkstra实现模版。ac代码实现#define N 505int mp[N][N];bool vis[N];int dis[N];int n,m;int dijkstra(){ //memset(dis,0x3f,sizeof dis); dis[1]=0; vi原创 2021-02-24 21:14:18 · 171 阅读 · 3 评论 -
最短路问题摘要
感谢黄色的狗,让我仔细思考串联了最短路算法。我依稀记得学习dij算法的时候,了解到了朴素版dij不能处理有负边权的图,之前因为没有理解透彻,也没有细思这个问题,今天仔细想了一下原因。上个图吧:如果用朴素的dij算法(n^2),每个点被确定后就不能再被更新了,然而负边权的存在会导致一个可能在被确定后最短路径继续被更新,所以这个肯定会出错。但是对于堆优化的dij算法,退出循环的条件是队列非空,然而每次只要起点到该点距离被更新了就会入队,不会直接确定某个点的dis,测试了一些数据发现并不会出问题!(但是原创 2021-05-13 16:29:34 · 107 阅读 · 0 评论