![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Dijkstra(堆优化版)
Nebula_xuan
HUNAUer,希望在大学四年中在ACM这条路上越走越远~
展开
-
图论-最短路-单源最短路-Dijkstra(堆优化版)
众所周知, 最短路是图论中非常常见的算法,而Dijkstra又作为常用的算法深受青睐笔者希望通过该文让刚入门图论的新人能够对于迪杰斯特拉算法能有一个较为完整的认识Let’s Start!什么叫做最短路?这是求出一个点到另一个点之间的最短距离,有些时候可以用DFS(搜索)来解决,但是针对一些特殊情况,比如没有方向或者有负权边的时候,用搜索就会很容易超时或者根本无法解决问题,因为搜索必须有明确的方向.借用一段正规的定义在一个无权的图中,若从一个顶点到另一个顶点存在着一条路径,则称该路径长度为该路径原创 2021-05-08 21:59:51 · 278 阅读 · 0 评论 -
Dijkstra(堆优化版)配套代码-不定义head为-1
#include #include #include #include using namespace std;typedef pair<int,int> PII;int n,m,x,y,z;const int N=100010;int to[N],val[N],head[N],cnt,dis[N],idx,nex[N],vis[N];void add(int u,int v,int t) {cnt++;to[cnt]=v;val[cnt]=t;nex[cnt]=hea原创 2021-05-08 21:36:59 · 180 阅读 · 0 评论 -
Dijkstra(堆优化版)配套代码-使用结构体
#include <iostream>#include <queue>#include <cstring>#include <vector>using namespace std;struct node { int diss,pos;};bool operator<(node x1,node x2) { return x1.diss>x2.diss;}//主要是此处比大小int n,m,x,y,z;const int N=1原创 2021-05-08 21:00:40 · 107 阅读 · 0 评论