模板整理——图论·最短路·dijkstra+堆

原创 2017年09月24日 20:24:24

思想:每次选择当前dis最小的点,更新其出边

时间复杂度:(n+m)logn

typedef pair<long long,int> pa;
priority_queue<pa,vector<pa>,greater<pa> > q;

void dijkstra(int s)
{
    for (int i=1; i<=n; i++) dis[i]=oo; //不要忘记清空
    dis[s]=0;
    q.push(pa(0,s));
    while (!q.empty())
    {
        pa k=q.top();
        vis[k]=1; //如果没有vis标记,可能造成一个点多次入堆出堆,若重边很多则会退化为O(m^2)
        q.pop();
        int u=k.second;
        for (int i=head[u];i;i=next[i])
        {
            int v=vet[i],l=val[i];
            if (dis[u]+l<dis[v])
            {
                dis[v]=dis[u]+l;
                if (!vis[v]) q.push(pa(dis[v],v));
            }
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Dijkstra+堆优化 模板

#include #include #include #include #include #include using namespace std; const int maxn=30000+5;  ...
  • qq_34446253
  • qq_34446253
  • 2016年08月16日 13:30
  • 1442

单源最短路径(堆优化的Dijkstra算法)

Dijkstra算法:设初始节点为v,起始节点到其他节点u的距离为图中v到u的直接线路的距离,如果v和u之间没有直接线路,则d[u]=INF(无穷大)。初始化S={v},寻找最短路径(即在d[]中寻找...
  • qianchangdiyin
  • qianchangdiyin
  • 2015年03月15日 20:45
  • 1737

[图论]最短路问题 dijkstra算法

今天研究的是图论中的一类基础问题:最短路问题 最短路问题是图论中最基础的问题,在程序设计竞赛试题中也经常出现。最短路是给定两个定点,在以这两个点为起点和终点的路径中,边的权值和最小的路径。如...
  • u012848631
  • u012848631
  • 2015年05月13日 13:16
  • 1348

[BZOJ 3040] 最短路(road) · 堆优化dijkstra

堆优化dijkstra写法很多,我用的是系统堆priority_queue,见上一篇blog 这题空间卡的太紧了 #include #include #include #include u...
  • ycdfhhc
  • ycdfhhc
  • 2015年09月15日 12:17
  • 487

【图论】单源点最短路模板(有向图)Dijkstra

#include #include #include #include #include #include using namespace std; const int MAXN = 50...
  • JeremyGJY
  • JeremyGJY
  • 2016年03月09日 13:49
  • 595

图论最短路dijkstra----poj1797模板题

最短路的解法: 1.邻接矩阵//n比较小,点少边多(n^2) 2.邻接表//n比较大,点多边少(log n) 今天的代码是ACM/ICPC算法训练教程上的代码P209优先队列+邻接表+局部dp判...
  • u011412840
  • u011412840
  • 2017年12月10日 21:59
  • 38

luogu解题报告:P1186玛丽卡【图论/最短路/堆优化dijkstra】

题目见https://www.luogu.org/problem/show?pid=1186
  • OIljt12138
  • OIljt12138
  • 2016年10月23日 19:15
  • 268

最短路模板——dijkstra,SPFA(邻接表实现)

#include #include #include #include #include #include #include #include using namespace std...
  • tyh24689
  • tyh24689
  • 2014年08月09日 00:04
  • 323

[ACM] 最短路算法整理(bellman_ford , SPFA , floyed , dijkstra 思想,步骤及模板)

以杭电2544题目为例 最短路 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运...
  • sr19930829
  • sr19930829
  • 2014年07月15日 16:14
  • 2243

最短路模板[spfa][dijkstra+堆优化][floyd]

借bzoj1624练了一下模板(虽然正解只是floyd) spfa: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1...
  • qq_37533501
  • qq_37533501
  • 2017年08月01日 11:09
  • 155
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模板整理——图论·最短路·dijkstra+堆
举报原因:
原因补充:

(最多只允许输入30个字)