bellman-ford算法模板
来源:互联网 发布:四维设计软件 编辑:程序博客网 时间:2024/06/15 16:21
#include <cstdio>#include <cstring>#include <algorithm>#define MAXN 1005const int inf = 0x3f3f3f3f;using namespace std;int n, m;int dis[MAXN],u[MAXN],v[MAXN],w[MAXN];void bellford(int start){for (int i = 1; i <= n; i++)dis[i] = inf;dis[start] = 0;for (int k = 1; k <= n - 1; k++)//外部循环n-1次{int flag = 0;for (int i = 1; i <= m; i++)//按边松弛{if (dis[u[i]] < inf && dis[v[i]] > dis[u[i]] + w[i]){dis[v[i]] = dis[u[i]] + w[i];flag = 1;}}if (!flag)break;//本轮dis数组没有更新,直接退出结束算法。}}int judge(){int flag = 0;for (int i = 1; i <= m; i++){if (dis[v[i]] > dis[u[i]] + w[i])flag = 1;break;}if (flag){printf("此图含有负权回路\n");return 0;}else return 1;}void print(){for (int i = 1; i <= n; i++)printf("%d ", dis[i]);printf("\n");}int main(){while (scanf("%d%d", &n, &m) != EOF && (n || m)){//读入边for (int i = 1; i <= m; i++)scanf("%d%d%d", &u[i], &v[i], &w[i]);int start;//读入起点scanf("%d", &start);bellford(start);if (judge())print();}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 模板
- 最短路径算法模板:Dijkstra/Floyd/Bellman-Ford模板
- Bellman-Ford&SPFA算法
- Bellman-ford算法实现
- Bellman-Ford 算法详解
- Bellman-Ford算法
- [南阳OJ-No.4]ASCII码排序|输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
- 241. Different Ways to Add Parentheses**
- 隐公元年(2)
- Android-MVP+Retrofit+Rxjava实现一个知乎日报客户端
- Android Activity生命周期
- bellman-ford算法模板
- 11.4
- 数据结构——队列的使用(二)
- 136. Single Number
- merchant story
- git遇到的一点小问题
- 活学活用,打开/重启Tomcat的小程序~
- 第一次写CSDN博客
- byte字节数组 转换成double类型