最短路
谁抢了我的昵称?
这个作者很懒,什么都没留下…
展开
-
最短路---Dijkstra小根堆优化
啥叫堆 可以看一下这个 https://www.cnblogs.com/xiugeng/p/9645972.html#_label0 普通Dijkstra可以看一下 https://blog.csdn.net/weixin_42488861/article/details/97394821 堆优化的进阶 https://blog.csdn.net/scar_halo/article/detail...原创 2019-07-29 23:04:25 · 402 阅读 · 0 评论 -
最短路---Dijkstra+模板
复习了一下Dijkstra算法 迪杰斯特拉算法的基本思想就是:通过边来松弛源点到其他点的距离,每次找到离源点最近的一个点,通过这个点去更新源点到其他点的最短距离。 步骤: 下面称存储源点到其他点的最短距离的数组为dis[],vis[]存储已经确定为最短距离的点,edge[i][j]存储两点之间的距离 (1)初始化,源点到本身的最短路径为0,源点可直接到达的点的初始最短距离(注意了,是初始,因为后面...原创 2019-07-26 16:52:00 · 114 阅读 · 0 评论 -
最短路算法比较
——图片来自《啊哈!算法》 n是顶点数,m是边数 floyd:O(n^3) 朴素dijkstra:O(n^2+m) dijkstra最小堆优化:O((m+n)logn) spfa:O(km)->O(nm) 理论上k<=2; 稠密图中适合使用朴素dijkstra 而稀疏图中采用最小堆dijkstra或者spfa,spfa在正权图中尽量不要使用,会被卡数据。。。但是有负权边的话使用s...原创 2019-07-27 01:16:39 · 171 阅读 · 0 评论 -
floyd最小环&&模板
floyd的核心代码: for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); } } } 通过中间节点k去松弛i到j的距离,这是floyd算...原创 2019-08-25 00:47:04 · 144 阅读 · 0 评论