模板整理——图论·最短路·spfa

原创 2017年09月27日 20:59:05

思想:每次取出队首u,弹出队首,松弛它的出边,并把u本次松弛的出边连接的未入队的点入队,若一个点入队次数超过n,说明有负权圈

时间复杂度:O(m*k)[k是常数,听说是2or3,然而我并不清楚] 那就假设是对的吧……

queue <int> q;
bool spfa(int s)
{
    for (int i=1; i<=n; i++) dis[i]=oo; 
    dis[s]=0;
    memset(in,0,sizeof(in));
    memset(vis,0,sizeof(vis));
    q.push(s);  
    vis[s]=1; 
    in[s]=1;
    while(!q.empty())
    {
        int u=q.front();
        q.pop();  
        vis[u]=0;
        for (int i=head[u]; i; i=next[i])
        {
            int v=vet[i];
            if (dis[v]>dis[u]+val[i])
            {
                dis[v]=dis[u]+val[i];
                if (!vis[v])
                {
                    vis[v]=1;
                    in[v]++;
                    q.push(v);
                    if (in[v]>n) return 1;
                }
            }
        }
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/adorkable_/article/details/78117160

图论:最短路问题 Floyd Dijkstra SPFA算法

昨天的模拟赛中有一道用到最短路算法的题,自己竟然写T了,所以今天来温习一下三个最短路算法,把模板写一写。  首先说明,这三个算法都是无向图有向图皆适用的。 Floyd算法: 三个里面最好写的算法,...
  • qq_25978793
  • qq_25978793
  • 2015-08-27 15:32:25
  • 873

图论最短路之Dijkstra算法,SPFA算法

一.最短路径的最优子结构性质(转载 原文链接http://www.cnblogs.com/dolphin0520/archive/2011/08/26/2155202.html)   该性质描述为:...
  • mr_zj_
  • mr_zj_
  • 2016-07-13 14:26:16
  • 1364

【转载】SPFA最短路算法解析

SPFA是一个比较高效的算法,虽说在比较大的数据时仍然无法比Dijkestra+Heap快,但是代码却很简单,以我的水平而言,代码要短上一倍以上。SPFA这个算法的实用性比较强,所以在OI中是一个相当...
  • Dream_Lolita
  • Dream_Lolita
  • 2016-08-08 09:32:22
  • 310

SPFA最短路算法

前言 算法用途 算法原理 算法结果 算法实现 正确性证明 例题 CPP源代码前言咳,又是一个新的博客。。。最近几天高产似母猪哈今天要讲的是SPFA算法。欢迎大家来看。。。算法用途这个算法,如其名:Sh...
  • rentenglong2012
  • rentenglong2012
  • 2017-11-08 21:39:10
  • 181

最短路SPFA 算法详解

最短路 SPFA 算法 详解
  • maxichu
  • maxichu
  • 2015-04-27 14:04:34
  • 1465

SPFA 最短路 带负权边的---- 粗了解

SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。 算法大致流程是用一个队列来进行维护。 初始时将源加...
  • WR_technology
  • WR_technology
  • 2016-04-26 21:28:19
  • 1876

最短路之 路径记录 dijkstra + floyd + SPFA 【小笔记】

引子:我们在求解最短路的时候,有的时候需要输出路径,这里就介绍下路径记录及输出的一些方法。 为了更好理解,提出一个问题: 给出n个车站,m条单向路线以及 每条路线的信息即 起点终点和对应的花费(n...
  • chenzhenyu123456
  • chenzhenyu123456
  • 2015-06-28 11:56:42
  • 1999

迈出一大步[spfa]最短路计数

题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。分析 SPFA,然后每次搜到新点给这个点加上之前的方案数就好啦 代码复杂度肯定比大佬们...
  • SSL_QYH0Ice
  • SSL_QYH0Ice
  • 2017-08-10 19:43:38
  • 170

【最短路】poj2457 SPFA+记录路径

SPFA算法,简单回溯记录路径。 翻译来自scy Part Acquisition部分收购 题意:     奶牛们被送往太空去执行一个任务:为它们的农场收购一台挤奶机器。它们正通过 ...
  • BonjourFFF
  • BonjourFFF
  • 2015-07-12 14:38:43
  • 941

POJ-1125& NYOJ-426- 多源最短路-spfa

给一个有向图 以i为出发起点,可以计算得到 i到所有点的最短路,取一个最大值 MAXi  问 以谁为起点,得到的MAXi最小,输出起点编号和MAXi 思路: 就是对每个人求一次最短路, 做n次sp...
  • viphong
  • viphong
  • 2015-11-13 10:53:35
  • 688
收藏助手
不良信息举报
您举报文章:模板整理——图论·最短路·spfa
举报原因:
原因补充:

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