链接:https://vjudge.net/problem/POJ-1860

题意:

有N个点,支持货币兑换,从货币a->b手续费c,汇率r。

求能否换一圈使总净额增加。

思路:

bellman-ford。

找一个正权回路。

代码:

#include <iostream>
#include <memory.h>
using namespace std;
const int MAXN = 210;
double dis[MAXN];
int n,m,s;
double v;
int w = 1;
struct Node
{int a,b;double r,c;
}node[210];bool bellman_Ford()
{memset(dis,0, sizeof(dis));dis[s] = v;for (int i = 1;i <= n-1;i++){bool flag = false;for (int j = 1;j<w;j++){int a = node[j].a,b = node[j].b;double r = node[j].r,c = node[j].c;if (dis[b] < (dis[a]-c)*r){dis[b] = (dis[a]-c)*r;flag = true;}}if (!flag)break;}for (int i = 1;i < w;i++)if (dis[node[i].b] < (dis[node[i].a] - node[i].c)*node[i].r)return true;return false;
}int main()
{int a,b;double rab,cab,rba,cba;scanf("%d%d%d%lf",&n,&m,&s,&v);for (int i = 0;i<m;i++){scanf("%d%d%lf%lf%lf%lf",&a,&b,&rab,&cab,&rba,&cba);node[w].a = a;node[w].b = b;node[w].r = rab;node[w++].c = cab;node[w].b = a;node[w].a = b;node[w].r = rba;node[w++].c = cba;}if (bellman_Ford())printf("YES\n");elseprintf("NO\n");return 0;
}

  

转载于:https://www.cnblogs.com/YDDDD/p/10274205.html

POJ-1860-Currency Exchange相关推荐

  1. POJ 1860 Currency Exchange 最短路+负环

    原题链接:http://poj.org/problem?id=1860 Currency Exchange Time Limit: 1000MS   Memory Limit: 30000K Tota ...

  2. poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)

    链接:poj 1860 题意:给定n中货币.以及它们之间的税率.A货币转化为B货币的公式为 B=(V-Cab)*Rab,当中V为A的货币量, 求货币S通过若干此转换,再转换为原本的货币时是否会添加 分 ...

  3. poj 1860 Currency Exchange (最短路bellman_ford思想找正权环 最长路)

    感觉最短路好神奇呀,刚开始我都 没想到用最短路 题目:http://poj.org/problem?id=1860 题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 mo ...

  4. POJ 1860 Currency Exchange (SPFA松弛)

    题目链接:http://poj.org/problem?id=1860 题意是给你n种货币,下面m种交换的方式,拥有第s种货币V元.问你最后经过任意转换可不可能有升值.下面给你货币u和货币v,r1是u ...

  5. POJ 1860 Currency Exchange

    英语太渣读了半天,理解了题意就好办了--Bellman_ford算法.在n-1次松弛后,如果依然存在满足松弛的情况返回1.说简单点就是判读是否存在正环. #include<stdio.h> ...

  6. POJ 1860 Currency Exchange (Bellman-Ford)

    题目大意:有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.39 ...

  7. POJ 1860 Currency Exchange

    题目大意:假設有A,B兩種貨幣,要將A換成B,須透過匯率Rab和手續費Cab,因此實際得到B貨幣=(A-Cab)*Rab元. 第一行輸入N, M, S, V,N表示共有N種貨幣(1<=N< ...

  8. POJ 1860: Currency Exchange 【SPFA】

    套汇问题,从源点做SPFA,如果有一个点入队次数大于v次(v表示点的个数)则图中存在负权回路,能够套汇,如果不存在负权回路,则判断下源点到自身的最长路是否大于自身,使用SPFA时松弛操作需要做调整 # ...

  9. *【POJ - 1860】Currency Exchange (单源最长路---Bellman_Ford算法判正环)

    题干: Description Several currency exchange points are working in our city. Let us suppose that each p ...

  10. Currency Exchange (POJ 1860)

    Currency Exchange 思路:用spfa来找正环,只要存在一个正环(cnt >= n),那么走这个圈无穷次后资产一定正无穷,因为路是双向的,所以一定可以返回原来的货币,正无穷再怎么亏 ...

最新文章

  1. linux 下解压缩rar文件
  2. HP-Unix安装Memcache问题
  3. Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划
  4. 设计模式-Factory Method Pattern
  5. Git-如何将已存在的项目提交到git
  6. 小程序iconfont报错_【经验】开发微信小程序经验总结
  7. 如何清空一个数组内容
  8. android不同机型编译不同so,如何使用adb命令查看android中的数据库
  9. jqgrid使用小记
  10. JavaScript 系列笔记(一)数据类型
  11. mysql 字段_【MySql】mysql 字段个数的限制
  12. Java——零基础速成学习
  13. 智能优化算法:蝗虫优化算法-附代码
  14. acme部署https证书
  15. 提交form表单之前处理数据
  16. 数据结构——什么是数据结构?
  17. 某个IP地址的十六进制表示是C22F1481,试将其转换为点分十进制的形式.这个地址是哪一类IP地址?
  18. 【MAYA】模型生长
  19. ios截屏功能html,滚动截屏APP - iPhone上的长截图工具
  20. 弘辽科技:淘宝直通车显示排查下架是什么?还能推广吗?

热门文章

  1. 替换元素和非替换元素的学习
  2. 获取access中表的相关信息
  3. 使用SDL打造游戏世界之入门篇 - 1
  4. OTA升级flash分区
  5. 事半功倍系列 javascript
  6. VLC SDK在VS2010中的配置及简单使用举例
  7. SSE2 Intrinsics各函数介绍
  8. 整理《Mastering OpenCV with Practical Computer Vision Projects》中第8章用Eigenfaces或Fisherfaces进行人脸识别操作流程
  9. matlab去雾算法论文,基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.doc...
  10. vmware响应时间过长_性能调优高并发下如何缩短响应时间