SPFA板子

Posted godoforange

tags:

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

#pragma GCC optimize(3)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 205;

vector<pair<int,int>>E[maxn];
int n,m;

int d[maxn],inq[maxn];
void init()
    for(int i=0;i<maxn;i++) E[i].clear();
    for(int i=0;i<maxn;i++) inq[i] = 0;
    for(int i=0;i<maxn;i++) d[i] = 1e9;

int main()

    while(cin>>n>>m)
        init();
        for(int i=0;i<m;i++)
            int x,y,z;scanf("%d%d%d",&x,&y,&z);
            E[x].push_back(make_pair(y,z));
            E[y].push_back(make_pair(x,z));
        
        int s,t;
        scanf("%d%d",&s,&t);
        queue<int> Q;
        Q.push(s),d[s]=0,inq[s]=1;
        while(!Q.empty())
            int now = Q.front();
            Q.pop();inq[now] = 0;
            for(int i=0;i<E[now].size();i++)
                int v = E[now][i].first;
                if(d[v]>d[now]+E[now][i].second)
                    d[v] = d[now]+E[now][i].second;
                    if(inq[v]==1) continue;
                    inq[v]=1;
                    Q.push(v);
                
            
        
        if(d[t]==1e9) printf("-1\n");
        else printf(d[t]);
    
    return 0;

 

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

费用流板子 dij&spfa

SPFA板子 (背景:Luogu P3371 单源最短路径)

自用板子

最短路:spfa算法

B1877 [SDOI2009]晨跑 费用流

POJ 2240 (SPFA判正环)