最短路模板
2017-12-12 20:49
369 查看
Floyd
/*Floyd for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { for(int k=0; k<n; k++) { if(maps[j][k]>maps[j][i]+maps[i][k]) maps[j][k]=maps[j][i]+maps[i][k]; } } } */
Dijkstra
/*Dijkstra #include<bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; const int maxn=1005; int N,M,S; int vis[maxn],cast[maxn],maps[maxn][maxn]; void dijkstra() { int i,j,minn,pos; memset(vis,0,sizeof(vis)); vis[0]=1; for(i=1; i<=n; i++) cast[i] = maps[0][i]; for(i=1; i<=n; i++) { minn=INF; for(j=1; j<=n; j++) { if(cast[j]<minn&&!vis[j]) { pos=j; minn=cast[j]; } } vis[pos]=1; for(j=1; j<=n; j++) { if(cast[pos]+maps[pos][j]<cast[j]&&!vis[j]) cast[j]=cast[pos]+maps[pos][j]; } } } */
/* int dijkstra() { int i,j,minn,pos; memset(vis,0,sizeof(vis)); for(i=0; i<=N; i++) cast[i]=(i==0?0:INF); for(i=0; i<=N; i++) { minn=INF; for(j=0; j<=N; j++) { if(cast[j]<minn&&!vis[j]) { pos=j; minn=cast[j]; } } vis[pos]=1; if(pos==S) return cast[pos]; for(j=0; j<=N; j++) { if(cast[pos]+maps[pos][j]<cast[j]&&!vis[j]) cast[j]=cast[pos]+maps[pos][j]; } } return -1; } */
SPFA
/* void spfa(int s) { queue <int> q; for(int i=1;i<=n;i++) dist[i]=inf; memset(vis,false,sizeof(vis)); q.push(s); dist[s]=0; while(!q.empty()) { int u=q.front(); q.pop(); vis[u]=false; for(int i=head[u];i!=-1;i=e[i].next) { int v=e[i].to; if(dist[v]>dist[u]+e[i].w) { dist[v]=dist[u]+e[i].w; if(!vis[v]) { vis[v]=true; q.push(v); } } } } } */
相关文章推荐
- 洛谷P3371-【模板】单源最短路【SPFA】
- 最短路模板
- 最短路~dijkstra模板
- 最短路-dijkstra与floyd的邻接矩阵模板示例
- 最短路相关模板、总结
- K短路【模板】
- hdu1874 最短路模板题
- floyd 最短路 模板
- 单源最短路模板
- spfa求最短路模板(邻接矩阵)
- 蓝桥网 算法训练 最短路(模板题)
- 最短路模板
- [模板]最短路 (Floyd, Spfa, Dijkstra,
- 计蒜客&景驰1024-二维最短路&模板-热爱工作的蒜蒜
- hdu2544 最短路 模板题
- Dijkstra最短路模板(lrj)
- 最短路 floyd dijkstra 模板
- 最短路(Djisteka算法)模板
- 最短路模板Dijkstra Bellman-Ford Floyd SPFA
- POJ 3255 Roadblocks(次短路模板题)