![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图算法
蛋淡的忧伤
小xuo生
展开
-
旅行
旅行A君所在的城市可以抽象成为个有n(1 ≤n ≤ 20000)个点和m(1 ≤ m ≤ 50000)条无向边的地图。A君住在1号点,他想进行一次环城市旅游。他从1号点出发,每次沿着和1号点相连的边中最短的边到下一个城市(如果有很多个最短的边,选择编号最小的走),到达下一个城市以后,还是沿着和这个城市相连的最短边走到下一个点(如果有很多个最短的边,选择编号最小的走),一直这样走下去,直到要...原创 2019-06-26 17:59:49 · 281 阅读 · 0 评论 -
单源最短路径Dijkstra算法
Dijkstra算法模板,邻接表实现,邻接表是数组模拟实现的Dijkstra适用于有向图、无向图。图中不能有负权值,有负权则用SPFA算法#include<cstdio>#include<cstring>const int N=1000;const int M=10000;struct edge//边结构体{ int v,w,next;//边指...原创 2019-06-28 18:00:01 · 347 阅读 · 0 评论 -
单源最短路径算法SPFA
适用于带负权的最短路径算法 ,不带负权值则一般用Dijkstra算法算法步骤:将所有顶点标记为未访问,源点标记为已访问,并加入队列。 将所有点到源点的距离初始化为一个很大的数,源点到源点本身的距离初始化为0 只要队列不空,取队列中的队头顶点,将该顶点点标记为未访问。如果该顶点U到它所连接顶点U(可能不止一个)距离加上边的距离小于源点到顶点U的距离,则将此距离更新为源点到顶点U的距离加上...原创 2019-06-29 19:48:20 · 224 阅读 · 0 评论 -
SPFA判断图中是否有负环
使用SPFA算法判断图中首有负环。SPFA算法保证每个顶点至多入队列n次(n为顶点总数)更新出到所有点的最短距离如果某个点入队列次数大于n次表示图中有负环#include<cstdio>#include<queue>#include<cstring>using namespace std;const int N=1000;const i...原创 2019-06-30 16:22:33 · 502 阅读 · 0 评论 -
多源最短路径floyd算法
floyd算法是解有向图、无向图(可以带负权,不能有负环)的多源最短路径算法使用时可以用SPFA先判断是否有负环,没有就可以使用了。常用邻接矩阵实现#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=100;int G[N]...原创 2019-06-30 17:09:33 · 220 阅读 · 0 评论