bellman-ford
来源:互联网 发布:教学实训软件 编辑:程序博客网 时间:2024/04/30 18:20
#include <iostream>#include <math.h>using namespace std;int s,edgenum,nodenum;const int max_edgenum=100;const int max_nodenum=100;struct Edge{int u,v,cost;}edge[max_edgenum];int dis[max_nodenum];bool Bellman_ford(){for(int i=1;i<=nodenum;i++){dis[i]=(i==s?0:INF);}for(int i=1;i<=nodenum-1;i++)for(int j=1;j<=edgenum;j++){if(dis[edge[j].v]>dis[edge[j].u]+edge[j].cost)dis[edge[j].v]=dis[edge[j].u]+edge[j].cost;}for(int i=1;i<=edgenum;i++)if(dis[edge[i].v]>dis[edge[i].u]+edge[i].cost){flag=0;return false;}return true;}
#include<iostream>using namespace std;int P[100];int D[100];int W[100];int U[100];int V[100];int m,n;bool bellman_ford(){for(int i=1;i<=n;i++){D[i]=INF;}for(int i=1;i<=n-1;i++)for(int j=1;j<=m;j++){if(D[V[j]]>D[U[j]]+W[j]){D[V[j]]>D[U[j]]+W[j];P[V[j]]=U[j];}}for(int j=1;j<=n-1;j++){if(D[V[j]]>D[U[j]]+W[j])return false;}return true;}
INF这里还要学习,,,
Ford算法解决单源最短路问题,以及双源最短路问题(因为复杂度相同)
从权值正负来分析,Ford算法可以解决带负权值的图的最短路问题。
若最短路存在,最短路径中一定不存在负环。即经过n-1条边。
算法思想是,进行n-1轮松弛,每轮松弛中更新所有边;n-1轮松弛后仍可更新边,说明含有负环。
附:百度百科上还有更简练的代码实现,每轮松弛操作后会判断是否收敛。
0 0
- Bellman-Ford
- bellman-ford
- Bellman-Ford
- Bellman-Ford
- Bellman-Ford
- Bellman-Ford
- bellman-ford
- bellman-ford
- bellman-ford
- Bellman-Ford
- Bellman-Ford&SPFA算法
- Bellman-ford算法实现
- Bellman-Ford 算法详解
- Bellman-Ford算法
- Bellman-Ford算法
- Bellman-Ford路由算法
- Bellman-ford模板
- poj1860(bellman-ford)
- 通达OA清除redis缓存的命令,redis常用命令
- ActiveMQ 即时通讯服务 浅析
- (08)Java学习笔记——面向对象02——关键字this static
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- 证件照像素尺寸
- bellman-ford
- 单选按钮radio样式的改变
- Android基于SwipeMenuListView实现滑动删除功能
- 被动路由跟踪工具InTrace
- [深度学习]利用Keras深度学习框架和卷积神经网络玩FlappyBird
- 项目更新版本时手机提示"程序未安装"
- 使用Gradle提交自己开源Android库到Maven中心库
- 使用kbhit()和getch()无阻塞接收用户键盘输入
- jquery动态添加内联id