Currency Exchange(spfa,邻接矩阵)

12 篇文章 0 订阅


题目意思:给出 N 种 currency, M种兑换方式,Nick 拥有的的currency 编号S 以及他的具体的currency(V)。M 种兑换方式中每种用6个数描述: A, B, C, D,E, F。其中,C: 货币A 兑换 货币B 的汇率为C,佣金为D。E:货币B 兑换 货币 A 的汇率,佣金为F。假设含有的A货币是x,那么如果兑换成B,得到的货币B 就是:(x-D) * C。问从 货币S 经过一定次数的兑换,最终回归到货币S,能否使得 Nick 本来含有的 S 大。

分析:其实仔细想想就知道,此题如果有一个正的回路就应该输出yes,当然这个正回路应该和起点相连接。

Sample Input

3 2 1 20.0
1 2 1.00 1.00 1.00 1.00
2 3 1.10 1.00 1.10 1.00
Sample Output

YES

有一个好理解的说法:第一行n,m,s,v.     n理解为货币的种类,即有多少个点,m是两个货币之间的银行个数,即有2*m条道路, s是拥有的货币,即原点,v是钱数。

第二行是两个点的标号AB,然后是A换B的利率,花费,当A换B时,钱就变成了(原钱数-花费)×利率,B换A的利率,花费。问可以让自己的钱变多吗。

#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <c
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值