【bellman-Ford判断正权回路】POJ
来源:互联网 发布:哪些网游支持mac 编辑:程序博客网 时间:2024/05/22 08:24
Problem Description
输入n,m,s,v,分别代表n中货币类型,m中兑换渠道,自己拥有的货币类型,自己拥有货币价值。接下来m行,每行a,b,rab,cab,rba,cba.分别代表a类型货币,b类型货币,a-b兑换率,a-b手续费,b-a兑换率,b-a手续费。
**思路:判断自己拥有的货币类型出发,回到自己看看有没有正权回路,有就输出YES。
#include<cstdio>#include<cstring>struct node{ int a, b; double rab, cab;};node e[205];int n, m, s, cnt;double dist[105];double v;int bellman_Ford(){ memset(dist, 0, sizeof(dist)); dist[s] = v; int i, j; for(i = 0; i < n - 1; i++) { int flag = 0; for(j = 0; j < cnt; j++) { if(dist[e[j].b] < (dist[e[j].a] - e[j].cab) * e[j].rab) { dist[e[j].b] = (dist[e[j].a] - e[j].cab) * e[j].rab; flag = 1; } } if(!flag) break;//如果不更新了退出循环,降低时间复杂度 } //判断是否有正权回路 for(j = 0; j < cnt; j++) { if(dist[e[j].b] < (dist[e[j].a] - e[j].cab) * e[j].rab) return 0;//还能更新,有正权回路 } return 1;}int main(){ int a, b; double rab, cab, rba, cba; while(~scanf("%d %d %d %lf", &n, &m, &s, &v)) { cnt = 0; while(m--) { scanf("%d %d %lf %lf %lf %lf", &a, &b, &rab, &cab, &rba, &cba); e[cnt].a = a; e[cnt].b = b; e[cnt].rab = rab; e[cnt++].cab = cab; e[cnt].a = b; e[cnt].b = a; e[cnt].rab = rba; e[cnt++].cab = cba; } if(bellman_Ford()) printf("NO\n"); else printf("YES\n"); } return 0;}
阅读全文
0 0
- 【bellman-Ford判断正权回路】POJ
- POJ 3259 Wormholes(判断负权回路|SPFA||Bellman-Ford)
- poj 3259 bellman-ford判断是否存在负权回路
- Bellman-Ford算法判断负权回路
- poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)
- bellman-ford算法——最短路问题,判断是否存在负权回路或正权回路
- bellman-ford算法——最短路问题,判断是否存在负权回路或正权回路
- poj 1860 正权回路+Bellman
- [ACM] POJ 3259 Wormholes (bellman-ford最短路径,判断是否存在负权回路)
- poj 3259 bellman-ford算法 判断是否存在负权回路
- PKU 3259 Wormholes - 判断负权回路 Bellman-Ford
- POJ-3259 Wormholes(负权回路[Bellman-Ford])
- POJ 1860 Currency Exchange Bellman-Ford算法求单源最短路径并判断是否有正权回路
- POJ 1860 Currency Exchange(Bellman-Ford判断最长路是否含有正环)
- Bellman-Ford算法,解决负权回路。
- poj 3259 bellman最短路判断有无负权回路
- POJ 1860 Bellman-frod判断负权回路
- Currency Exchange (Bellman-Ford算法,判断是否有正权回路)
- 复数与欧拉公式的转换证明
- insert插入多条数据
- UVa 11838
- SublimeText3: ImportError: No module named ‘urllib2′
- Calculating the Average
- 【bellman-Ford判断正权回路】POJ
- 取得字符串前几位
- 一个屌丝程序猿的人生(一)
- 欢迎使用CSDN-markdown编辑器
- 用for循环打印出由单个字符组成的三角形
- Xcode 常用代码块
- d3画中国地图
- HTML制表符大全
- AS(四)Android xml解析