Bellman-Ford
来源:互联网 发布:mac 更新java版本 编辑:程序博客网 时间:2024/05/21 10:51
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#define inf 999999999 #define MAX 10000using namespace std;int dist[MAX],u[MAX],v[MAX],w[MAX];int main(){int n,m;int check,flag;scanf("%d%d",&n,&m);//n个点,m条边 for(int i=1;i<=m;i++)scanf("%d%d%d",&u[i],&v[i],&w[i]);for(int i=1;i<=n;i++)dist[i]=inf;dist[1]=0;//Bellman-Ford算法核心语句for(int i=1;i<=n-1;i++) {check=0;//标记在本轮松弛中数组dist是否会发生更新 for(int j=1;j<=m;j++){if(dist[v[j]]>dist[u[j]]+w[j]){dist[v[j]]=dist[u[j]]+w[j];check=1;}}if(check==0)break;//如果数组dist未更新,退出循环 }//检测负权回路flag=0;for(int i=1;i<=n;i++)if(dist[v[i]]>dist[u[i]]+w[i])flag=1;if(flag==1){printf("此图含有负权回路\n");return 0;}for(int i=1;i<=n;i++)printf("%d ",dist[i]);return 0;}//测试数据如下 /*5 52 3 21 2 -31 5 54 5 23 4 30 -3 -1 2 4*//*5 71 2 21 5 102 3 32 5 73 4 44 5 55 3 60 2 5 9 9*/
Bellman-Ford的队列优化:http://blog.csdn.net/wzw1376124061/article/details/52557470
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)
- Bellman-Ford队列优化(邻接表)
- 二叉树中和为某一值的路径
- 浅谈Java设计模式----建造者模式
- 机器学习——误差
- HDU1238-Substrings
- Bellman-Ford
- 0914测试【提高组】(系实验选拔考2)
- 【Day4】 foreach的时候指针是如何指向的?list()/while()/each()循环数组的时候指针是如何指向的?
- 线段树区间修改
- Linux中常用命令01
- 字节位数
- float与double在内存中储存的形式
- 物联网(IOT)WIFI芯片方案
- HttpClient学习笔记