HIHO #1093 : 最短路径·三:SPFA算法
2016-08-10 21:47
483 查看
题目链接
#include<bits/stdc++.h> using namespace std; #define cl(a,b) memset(a,b,sizeof(a)) #define LL long long #define pb push_back #define gcd __gcd #define For(i,j,k) for(int i=(j);i<k;i++) #define lowbit(i) (i&(-i)) #define _(x) printf("%d\n",x) const int maxn = 1e6+10; const int inf = 1 << 28; vector<pair<int,int> > G[maxn]; bool inq[maxn]; int d[maxn]; int spfa(int s,int t){ cl(inq,false); queue<int> q; for(int i=0;i<maxn;i++)d[i]=inf; q.push(s); d[s]=0; inq[s]=true; while(!q.empty()){ int u = q.front();q.pop(); for(int i=0;i<G[u].size();i++){ int v = G[u][i].first; int w = G[u][i].second; if(d[u]+w<d[v]){ d[v] = d[u] + w; if(!inq[v]){ inq[v]=true; q.push(v); } } } inq[u]=false; } return d[t]; } int main(){ int n,m,s,t; cin>>n>>m>>s>>t; for(int i=0;i<m;i++){ int x,y,z;cin>>x>>y>>z; G[x].pb(make_pair(y,z)); G[y].pb(make_pair(x,z)); } cout<<spfa(s,t)<<endl; return 0; }
相关文章推荐
- hihoCoder - 1093 - 最短路径·三:SPFA算法 (SPFA)
- # hihocoder #1093 : 最短路径·三:SPFA算法
- hihoCoder 1093 : 最短路径·三:SPFA算法
- hihoCoder 1093 最短路径·三:SPFA算法
- hihoCoder - 1093 - 最短路径·三:SPFA算法
- hihocoder #1093 : 最短路径·三:SPFA算法
- hihocoder 1093 : 最短路径·三:SPFA算法
- [hihoCoder] #1093 : 最短路径·三:SPFA算法
- hihoCoder 1093 : 最短路径·三:SPFA算法
- hihocoder#1093 : 最短路径·三:SPFA算法
- #1093 : 最短路径·三:SPFA算法 hihocoder SPFA
- 最短路径·三:SPFA算法 HihoCoder - 1093 (spfa无向图)
- 求含有负权边的图的单源最短路径——Bellman Ford算法与SPFA算法综合分析
- 最短路径之Spfa算法
- SPFA算法求最短路径
- SPFA算法【最短路径】
- 可以处理负权的单源最短路径的SPFA算法带图详解(自己画的图)
- 最短路径SPFA算法
- SPFA算法 快速Bellaman-ford算法 源点最短路径
- 最短路径 之 SPFA算法