首页 > 其他分享 >【Luogu3371】【模板】单源最短路径(SPFA)

【Luogu3371】【模板】单源最短路径(SPFA)

时间:2023-02-08 11:37:20浏览次数:39  
标签:dist Luogu3371 int 单源 next SPFA include define

problem

  • 给出一个有向图
  • 求从某一点出发到所有点的最短路

solution

SPFA

codes

#include<iostream>
#include<queue>
#include<cstring>
#define maxn 10010
#define maxm 500010
using namespace std;

//Grape
int n, m, s;
struct Edge{int v, w, next;}e[maxm<<1];
int tot, head[maxn];
void AddEdge(int u, int v, int w){
    tot++; e[tot].v=v; e[tot].w=w; e[tot].next=head[u]; head[u]=tot;
}

//SPFA
int dist[maxn], book[maxn];
queue<int>q;
void spfa(){
    for(int i = 1; i <= n; i++)dist[i]=2147483647;
    dist[s]=0; book[s]=1; q.push(s);
    while(q.size()){
        int u = q.front();  q.pop();  book[u]=0;
        for(int i = head[u]; i > 0; i = e[i].next){
            int v = e[i].v, w = e[i].w;
            if(dist[v]>dist[u]+w){
                dist[v] = dist[u]+w;
                if(!book[v]){
                    book[v] = 1;  q.push(v);
                }
            }
        }
    }
}

int main(){
    cin>>n>>m>>s;
    for(int i = 1; i <= m; i++){
        int x, y, z; cin>>x>>y>>z; AddEdge(x,y,z);
    }
    spfa();
    for(int i = 1; i <= n; i++)
        cout<<dist[i]<<' ';
    return 0;
}

标签:dist,Luogu3371,int,单源,next,SPFA,include,define
From: https://blog.51cto.com/gwj1314/6043782

相关文章

  • hdu-1874-畅通工程续(dijkstra + SPFA )
    畅通工程续TimeLimit:3000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):36928    AcceptedSubmission(s):13......
  • 算法之Dijkstra及其堆优化和SPFA:图上单源最短路径神器
    签到题……题目传送门SPFA算法本人曾经写过一篇有关Bellman-ford的博,但就算是挂了优化的ford也只能过这道题的弱化版。今天就先填个坑,先讲SPFA。在这里我直接认为你们......
  • 算法之SPFA的前置:Bellman-Ford算法
    SPFA我们都知道一个叫SPFA的算法,它是用来计算单源最短路径的,但是,众所周知它不是很稳定,容易退化。SPFA是基于什么被提出的?基于一个叫做Bellman-Ford的算法。Bellman-For......
  • 工厂模式C++实现 (内附简单源码实现)
    抽象工厂模式为什么要用抽象工厂模式?*举个实际应用的例子,一个显示器电路板厂商,旗下的显示器电路板种类有非液晶的和液晶的;这个时候,厂商建造两个工厂,工厂A负责生产非......
  • poj3255 Roadblocks--次短路spfa
    原题链接:​​http://poj.org/problem?id=3255​​题意:n个点,标号为1到n,m条路,u,v,len,表示u与v之间路长为len,求1到n第二短路长,题目保证存在第二短路径。#define_CRT_SECURE_NO_D......
  • 【算法入门&搜索法】走迷宫|单源最短路径1
    文章目录​​......
  • Dijkstra算法求带权图的单源最短路径
    Dijkstra算法:给出一个带权无向图,要求指定顶点到图中每一个点的最短路径。首先我们定义一个邻接矩阵c,c[i][j]用来表示从顶点i到顶点j的权重,用一个一维数组prev[]来记录指定......
  • 必须经过关键点或达成某些状态的单源最短路-01bfs
    https://ac.nowcoder.com/acm/contest/45670/D题目描述:小竹成功从家里逃了出来,他决定去小胖家避一避。但是小胖要求小竹带一个刺激度大于xx的游戏才能去他家。为了防......
  • SPFA最短路算法
    ShortestPathFastestAlgorithm(spfa)单源最短路、存在负权边这个算法因为与Bellman-Ford算法比较相似,只是在它的算法的基础上进行了队列优化,因此也被嘲讽为“队列优......
  • kafka 客户端之producer API发送消息以及简单源码分析
    背景:我使用docker-compose搭建的kafka服务​kafka的简单介绍以及docker-compose部署单主机Kafka集群​​KafkaAPI简单介绍kafka除了用于管理和管理任务的命令行工具,Kafka......