Bellman-Ford求最短路径
来源:互联网 发布:j罗 皇马 数据 编辑:程序博客网 时间:2024/04/30 13:53
#include <iostream>using namespace std;const int maxn=100;const int maxint=99999;typedef struct Edge{ int u,v; // 起点,重点 int wt; // 边的权值}Edge;Edge edge[maxn]; // 保存边的值int dist[maxn]; // 结点到源点最小距离int noden,edgen,se;// 结点数,边数,源点void init(){ scanf("%d%d%d",&noden,&edgen,&se); for(int i=1;i<=noden;++i) dist[i]=maxint; dist[se]=0; for(int i=1;i<=edgen;++i) { scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].wt); if(edge[i].u==se)//注意这里设置初始情况 dist[edge[i].v]=edge[i].wt; }}// 松弛操作 void relax(int u,int v,int wt){ if(dist[v]>dist[u]+wt) dist[v]=dist[u]+wt;}bool Bellman_Ford(){ for(int i=1;i<=noden-1;++i) for(int j=1;j<=edgen;++j) relax(edge[j].u,edge[j].v,edge[j].wt); bool flag=1; // 判断是否有负环路 for(int i=1;i<=edgen;++i) { if(dist[edge[i].v]>dist[edge[i].u]+edge[i].wt) { flag=0; break; } return flag; }}int main(){ //freopen("input.txt", "r", stdin); init(); if(Bellman_Ford()) for(int i=1;i<=noden;i++) printf("%d ",dist[i]); return 0;}
0 0
- Bellman-Ford求最短路径
- 求最短路径之Bellman-Ford算法
- 解析Bellman-Ford算法求最短路径
- 【原创】求最短路径-Bellman-Ford算法
- Bellman Ford 单源最短路径
- 单源最短路径---Bellman-Ford
- 单源最短路径Bellman-Ford算法
- 单源最短路径 : Bellman-Ford 算法
- 单源最短路径-Bellman-Ford算法
- 单源最短路径--Bellman-Ford算法
- 单源最短路径-Bellman-Ford算法
- 单源最短路径之Bellman-Ford
- 单源最短路径-Bellman-ford算法
- Bellman-Ford单源最短路径+优化
- Bellman-Ford 单源最短路径算法
- 求单源最短路径的算法(Bellman-Ford)
- Bellman-Ford算法 单源最短路径(o(nm))
- Wormholes-------最短路径Bellman ford
- javaweb中mysql数据库连接方法
- 安装NetWeaver Java 7.5(Windows 2012 R2上)
- HDU 1325 Is It A Tree? 并查集判断是否成树
- Random rand =new Random(47);
- Oracle expdp/impdp导出导入命令及数据库备份
- Bellman-Ford求最短路径
- STL中Vector的内存分配机制
- 安全加密算法与数据签名总结(1)
- Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d real'.
- 升级Android Studio2.2遇坑经历记录
- 线程、多线程与线程池总结
- DFS和BFS
- rmmod: chdir(/lib/modules): No such file or directory 解决方法
- 8086的寻址方式