SPFA求最短路
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SPFA求最短路相关的知识,希望对你有一定的参考价值。
syzoj.com 最短路径问题 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <queue> #include <vector> using namespace std; #define maxn 10001 vector<int>a[maxn],b[maxn]; queue<int>bfs; int dis[maxn]; inline int read(){ int num=0,f=1; char c=getchar(); while(!isdigit(c)){if(c==‘-‘) f=-1; c=getchar();} while(isdigit(c)){num=(num<<1)+(num<<3)+(c^48); c=getchar();} return num*f; } int n,m; inline int in(){ n=read(); m=read(); for(int i=1;i<=m;i++){ int u,v,c; u=read(); v=read(); c=read(); a[u].push_back(v); b[u].push_back(c); } } inline int work(){ memset(dis,127,sizeof(dis)); dis[1]=0; bfs.push(1); while(!bfs.empty()){ int city=bfs.front(); bfs.pop(); int num=a[city].size(); for(int i=0;i<num;i++){ int next=a[city][i]; int next_c=b[city][i]; dis[next]=min(dis[next],dis[city]+next_c); bfs.push(next); } } } inline int out(){ cout<<dis[n]; } int main(){ in(); work(); out(); }
以上是关于SPFA求最短路的主要内容,如果未能解决你的问题,请参考以下文章