spfa 模板

Posted shuaihui520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spfa 模板相关的知识,希望对你有一定的参考价值。

题目:给出图的条件 ,求1到n的最短路

 

技术分享图片
#include<cstdio>
#include<queue>
using namespace std;
int u,v,w;
struct node
{
    int to,next,w;
}edge[100010];
int k;
int head[100100];
int dist[100100];
void adde(int u,int v,int w)
{
    edge[++k].to=v;
    edge[k].next=head[u];
    edge[k].w=w;
    head[u]=k;
}
bool book[101000];
queue<int> q;
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&u,&v,&w);//建图 
        adde(u,v,w);
        adde(v,u,w);//要建双边 
    }
    for(int i=1;i<=n;i++)
    dist[i]=0x7f7f7f7f;//初始化为无限大 
    q.push(1);//起点入队 
    book[1]=true;
    dist[1]=0;
    while(!q.empty())
    {
        int mb=q.front();//取出队列里的点 
        q.pop();//记得pop 
        for(int i=head[mb];i;i=edge[i].next)//便利 
        {
            int rp=edge[i].to;
            if(dist[rp]>dist[mb]+edge[i].w)//松弛 
            {
                dist[rp]=dist[mb]+edge[i].w;
                if(book[rp]==false)
                q.push(rp);
            }
        }
    }
    printf("%d",dist[n]);
    return 0;
}
View Code

 

以上是关于spfa 模板的主要内容,如果未能解决你的问题,请参考以下文章

SPFA算法以及负环判断模板

SPFA算法以及负环判断模板

模板SPFA(不完全详解)

Minimum Cost POJ - 2516 (模板题 spfa最小费用最大流)

spfa(模板)

VSCode自定义代码片段——.vue文件的模板