【模板】最短路
2016-11-15 21:47
323 查看
Floyd
这是DP!DP!DP!
Dijkstra
贪心的最短路算法 不能处理负权
SPFA
这是DP!DP!DP!
int V, E; int d[MAX_V][MAX_V]; void Floyd() { for(int k = 1; k <= V; k+ +) for(int i = 1; i <= V; i ++) for(int j = 1; j <= V; j ++) d[i][j] = min(d[i][j],d[i][k] + d[k][j]); }
Dijkstra
贪心的最短路算法 不能处理负权
void dijkstra(int s) { d[s] = 0; while(true) { int v = -1; for(int i = 1; i <= V; i ++) if(!done[i] && (v == -1 || d[i] < d[v])) v = i; if(v == -1) break; done[v] = 1; for(int i = first[v]; i != -1; i = next[i]) { int u = es[i].to; d[u] = min(d[u], d[v] + es[i].cost); } } }
SPFA
void spfa(int s) { d[s] = 0; q.push(s); used[s] = 1; while(!q.empty()) { int u = q.front(); q.pop(); used[u] = 0; for(int i = first[u]; i != -1; i = next[i]) { int v = es[i].to; if(d[v] > d[u] + es[i].cost ) { d[v] = d[u] + es[i].cost; if(!used[v]) { q.push(v); used[v] = 1; } } } } }
相关文章推荐
- P2483 【模板】k短路([SDOI2010]魔法猪学院)
- 最短路入门--djstl模板 hd2006
- HDU Today HDU - 2112 模板最短路
- 最短路模板
- [模板]最短路 (Floyd, Spfa, Dijkstra,
- 模板-最短路//Dilkstra
- 最短路(floyd/dijkstra/bellmanford/spaf 模板)
- 图论求单源最短路 spfa算法(附模板)
- 最短路模板合集~(Dij+Floyd+Spfa)
- 最短路模板(SPFA+dijkstra)
- hdu 2544 最短路 dijkstra模板
- 模板整理——图论·最短路·spfa
- HDU ~ 2544 ~ 最短路 (Dijkstra模板,常规版 and 优先队列优化版)
- 最短路模板[spfa][dijkstra+堆优化][floyd]
- 最短路模板,floyd prim
- HDU 2544 最短路——简单的模板题 dijkstra
- 最短路~dijkstra模板
- 最短路 - - 模板
- 单源最短路 SPFA 算法模板
- HDU 2544 最短路(我的dijkstra算法模板、SPAFA算法模板)