模板_Bellman-frod算法(最短路径解决负权路问题)
2017-04-19 20:31
417 查看
//Bellman-ford算法核心语句dis[]都是记录源点到各个顶点的最小距离 for(k = 1;k <= n-1;k ++) for(i = 1;i <= m;i ++) if(dis[v[i]] > dis[u[i]] + w[i]) dis[v[i]] = dis[u[i]] + w[i]; //初始化dis数组,(1号顶点到个各个顶点的初始距离) for(i = 1;i <=n;i ++) dis[i]=inf; dis[1]=0; for(k=1;k<=n-1;k++) { for(i=1;i<=n;i++) bak[i]=dis[i];//(拷贝dis[i]) for(i=1;i<=m;i++) if(dis[v[i]] > dis[u[i]] + w[i]) dis[v[i]] = dis[u[i]] + w[i]; check=0; for(i=1;i<=n;i++) if(bak[i]!=dis[i]) { check=1; break; } if(check=0) break;//如果dis没有更新就直接退出循环 } //检测负权回路 flag=0; for(i=1;i<=m;i++) if(dis[v[i]] > dis[u[i]] + w[i]) flag=1; if(flag==1) printf("有负权路") ;
相关文章推荐
- Dijkstra算法,Bellman-Ford算法和BFS算法解决有向图的单源最短路径问题
- Bellman - Ford 算法解决最短路径问题
- 队列优化并使用邻接表存储的Bellman-Ford算法模板解决最短路径存在负权边问题
- Java解决算法-最短路径问题
- Poj 1860 Currency Exchange(Bellman-Ford,SPFA解单源最短路径问题)
- Poj 1860 Currency Exchange(Bellman-Ford,SPFA解单源最短路径问题)
- 用lingo解决“最短路径问题”
- 最短路径问题(算法模板)
- HDU - 3790最短路径问题经典模板题
- HDOJ题目2544 最短路(最短路径问题,Dijkstra模板)
- Java利用回溯思想解决迷宫问题(寻找最短路径)
- Bellman-Ford 算法 单源最短路径问题
- SPFA算法求最短路径(解决负边权问题)
- [图论]Bellman-Ford算法求解最短路径问题(含有负权重)
- Floyd算法解决最短路径问题
- 反圈法解决最短路径问题
- 单源最短路径算法模板(Dijkstra+BellmanFrod)
- 最短路径(三)—Bellman-Ford算法(解决负权边)
- (最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理与介绍
- RouteTask执行最短路径计算时“无法完成 操作”问题分析解决