最短路-Bellman-Ford
来源:互联网 发布:猿课软件 编辑:程序博客网 时间:2024/05/01 01:22
O(VE)
可以检测负圈
struct Edge{ int from,to; int cost;}edge[maxn*maxn]; //有向边int n,edgenum,dis[maxn],pre[maxn]; // dis是已知最短路径长,pre是前驱bool Bellman_Ford(int original){ memset(dis,INF,sizeof(dis)); for(int i=1;i<=n;i++) pre[i]=i; dis[original]=0; for(int i=0;i<n;i++){// 本来写法是遍历n-1次,结尾再遍历一次看有没有负环,但是其实我这里遍历多一次,如果还不return true,也说明有负环咯,完美! // 如果所有的边的改变不了dis了,就直接跳出,不用遍历n-1次那么多了 int flag=true; for(int j=1;j<=edgenum;j++){ if(dis[edge[j].from]+edge[j].cost<dis[edge[j].to]){ // 松弛 dis[edge[j].to]=dis[edge[j].from]+edge[j].cost; pre[edge[j].to]=edge[j].from; flag=false; } } if(flag)return true; } return false;}void print_path(int root){ // 反向输出最短路径 while(pre[root]!=root){ printf("%d->",root); root=pre[root]; } printf("%d\n",root);}
1 0
- 最短路 bellman-ford
- 最短路~bellman-ford
- 最短路-Bellman-Ford
- 最短路之bellman-ford
- bellman ford最短路算法
- 最短路--Bellman-Ford算法
- bellman-ford算法 最短路
- Bellman-Ford(最短路)
- Bellman-ford最短路算法
- poj 2240 Arbitrage(最短路+Bellman-Ford)
- 旧代码 - 最短路 Bellman Ford
- poj1860_最短路bellman Ford算法应用
- 最短路之Bellman-Ford算法
- HDU2544 最短路 Bellman-Ford实现
- 最短路之bellman-ford HDU 1874
- POJ1860 Currency Exchange 最短路bellman-ford
- 最短路——Bellman-Ford
- 最短路问题(Bellman-Ford算法)
- 【Java】队列和多线程
- 图解sql server 命令行工具sqlcmd的使用
- Hdu 5862 Counting Intersections(有n条线段,每一条线段都是平行于x轴或者y轴,问有多少个交点)
- cocos2dx打包apk时,keystore信息输入错误怎么办
- 继承再学习
- 最短路-Bellman-Ford
- CSDN-markdown 之 LaTeX 特殊公式格式笔记
- python学习(5)———多变量及其输出
- 二十四. Django认证系统中的@login_required
- 最小生成树-Prim
- 多线程总结:
- 剑指Offer笔记<JAVA版>(二)
- 父类引向子类对象
- cache和命中率的问题