最短路模版(floyed/dijkstra/bellman-ford/spfa)
2017-12-27 20:35
435 查看
裸的,改天穿衣服。
floyed
很强的int a[maxm][maxm]; //input; for(int k=1;k<=n;++k;) for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) a[i][j]=max(a[i][k]+a[k][j],a[i][j]); //output; (a[i][j])
dijkstra
不想用的int a[maxm][maxm]; int start,end; //input; int dis[maxm]; bool flag={}; for(int i=1;i<=n;++i) dis[i]=a[start][i]; dis[start]=1; for(int i=1;i<=n;++i) { int minn=2000000000;int k=0; for(int j=1;j<=n;++j) if(!flag[j]&&dis[j]<minn) minn=dis[j],k=j; if(!k) break; flag[k]=1; for(int j=1;j<=n;++j) if(!flag[j]&&dis[j]>dis[k]+a[k][j]) dis[j]=dis[k]+a[k][j]; } //output;(dis[end])
bellman-ford
我曾深爱的struct edge { int x,y,v; }e[maxn*2]; //input; int dis[maxm]; memset(dis,10,sizeof(dis)); dis[1]=0; for(int i=1;i<n;++i) { bool flag=0; for(int j=1;j<=m*2;++j) if(dis[e[i].y]>dis[e[i].x]+e[i].v) dis[e[i].y]=dis[e[i].x]+e[i].v,flag=1; if(!flag) break; } //output;(dis[end])
SPFA
新欢struct edge { int y,next,v; }e[maxn*2]; int linkk[maxm]={}; //input; int q[maxn*10]; int head=0,tail=0; int dis[maxm]; int vis[maxm]={}; memset(dis,10,sizeof(dis)); q[++tail]=st; dis[st]=0; vis[st]=1; while(head++<tail) { for(int i=linkk[q[head]];i;i=e[i].next;) if(e[i].v+dis[q[head]]<dis[e[i].y]) { dis[e[i].y]=e[i].v+dis[q[head]]; if(!vis[e[i].y]) q[++tail]=e[i].y,vis[e[i].y]=1; } vis[q[head]]=0; } //output;(dis[end])
相关文章推荐
- [ACM] 最短路算法整理(bellman_ford , SPFA , floyed , dijkstra 思想,步骤及模板)
- 最短路知识点总结(Dijkstra,Floyd,SPFA,Bellman-Ford)
- Floyd Dijkstra Bellman-Ford spfa 四种最短路经典算法汇总 HDU 2544为例
- 带权最短路 Dijkstra, SPFA, Bellman-Ford, ASP, Floyd-Warshall 算法分析
- HDU 2544 最短路【dijkstra+floyd+spfa+bellman-ford】
- 最短路知识点总结(Dijkstra,Floyd,SPFA,Bellman-Ford)
- 带权最短路 Dijkstra, SPFA, Bellman-Ford, ASP, Floyd-Warshall 算法分析
- 最短路(Floyd+Dijkstra+(Bellman-Ford)SPFA)
- hdu 2544 【总结】 Dijkstra,Bellman-Ford ,SPFA 最短路求法及对应优化
- hdu 2544 【总结】 Dijkstra,Bellman-Ford ,SPFA 最短路求法及对应优化
- 模板--Floyd Dijkstra Bellman-Ford spfa 四种最短路经典算法
- 最短路知识点总结(Dijkstra,Floyd,SPFA,Bellman-Ford)
- 图论总结 Dijkstra Tarjan 最小生成树 二分图 最短路 强连通分量 双连通分量 Bellman-Ford SPFA 二分图染色 Kruskal Prim 网络流 二分图匹配 Dinic
- [ACM] 最短路算法整理(bellman_ford , SPFA , floyed , dijkstra 思想,步骤及模板)
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
- hdu1874(最短路:一道题学习Floyd,Dijkstra,Bellman-Ford,SPFA)
- HDU2544_最短路(Dijkstra)(Bellman-Ford)(SPFA+邻接表/邻接矩阵)
- HDU 2544 最短路(四种写法:Floyd、Dijkstra、Bellman-Ford、SPFA)
- 带权最短路 Dijkstra, SPFA, Bellman-Ford, ASP, Floyd-Warshall 算法分析
- 最短路(SPFA、Dijkstra、Floyd、Bellman-Ford)