单源最短路spfa模板(stl更新版)
2014-09-22 11:44
316 查看
#include <iostream> #include <cstdio> #include <cmath> #include <queue> #include <string.h> using namespace std; const int INF=0x3f3f3f3f; const int maxm=511111; const int maxn=111111; struct EdgeNode { int to; int w; int next; }; EdgeNode edges[maxm]; int N,M; int head[maxn],edge; bool vis[maxn]; queue <int> que; int dis[maxn]; void addedge(int u,int v,int c) { edges[edge].w=c,edges[edge].to=v,edges[edge].next=head[u],head[u]=edge++; } void init() { memset(head,-1,sizeof(head)); edge=0; } void spfa(int s,int n)//单源最短路(s为起点,n为节点总数) { int u; for (int i=0; i<=n; i++) dis[i]=INF; memset(vis,0,sizeof(vis)); while (!que.empty()) que.pop(); que.push(s); vis[s]=true; dis[s]=0; while (!que.empty()) { u=que.front(); que.pop(); vis[u]=false; for (int i=head[u]; i!=-1; i=edges[i].next) { int v=edges[i].to; int w=edges[i].w; if (dis[v]>dis[u]+w) { dis[v]=dis[u]+w; if (!vis[v]) { vis[v]=true; que.push(v); } } } } }
相关文章推荐
- [ACM模板]单源最短路SPFA
- Aizu 2249 单源最短路变形 spfa模板改写
- Aizu 2249Road Construction 单源最短路变形 spfa模板改写
- 洛谷P3371-【模板】单源最短路【SPFA】
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
- 单源最短路模板——SPFA
- 最短路模板(SPFA+dijkstra)
- 最短路【SPFA】算法模板
- POJ3259 Wormholes(最短路,有无负环,spfa,模板)
- 【OI之路】03图论算法-1最短路之单源最短路(SPFA)
- HDU 2544 最短路 SPFA 邻接表 模板
- HDU 2544 最短路 floyd djkstra(邻接表,邻接矩阵) spfa bellman-ford 模板题
- Hdu 2544 最短路 (Dijkstra+SPFA+Floyd模板)
- 最短路 SPFA模板
- 最短路模板 floyd+dijkstra+spfa
- 图论求单源最短路 spfa算法(附模板)
- 图论复习1,贴几个求单源最短路的模板
- dijkstra算法(单源最短路)模板
- 单源最短路SPFA(模板)
- 【模板】【最短路】【Dijkstra+Heap,SPFA】