NYOJ 188 Arbitrage map 建图 汇率转换
来源:互联网 发布:手机淘宝卖家怎么激活 编辑:程序博客网 时间:2024/05/29 01:54
原题链接
题目大意 :套利是利用货币汇率的差异,将一个货币单位转换成同一货币的一个以上的单位。例如,假设1美元买0.5英镑,1英镑买10法郎,而1法国法郎购买0.21美元。然后,通过转换货币,一个聪明的交易者可以从1美元和购买0.5 * 10 * 0.21 = 1.05美元,使利润为百分之5美元。
你的工作是写一个程序,以货币汇率的列表作为输入,然后确定是否套利是可能的。用map建图,floyd
#include<stdio.h>#include<string>#include<map>using namespace std;map<string,int>mp;double a[40][40];int n;void addEdge(char str1[],double x,char str2[]){string s1=str1;string s2=str2;int u,v;u=mp[s1];v=mp[s2];a[u][v]=x;}bool floyd(){int i,j,k;for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(a[i][j]<a[i][k]*a[k][j]){a[i][j]=a[i][k]*a[k][j];}}for(i=1;i<=n;i++){if(a[i][i]>1)return true;}return false;}int main(){int m,i,j,count,t=0;double x;char str[20],str1[20],str2[20];while(scanf("%d",&n)&&n){count=0;mp.clear();getchar();for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i==j)a[i][j]=1;elsea[i][j]=0;}for(i=0;i<n;i++){scanf("%s",str);string s=str;mp[s]=++count;}scanf("%d",&m);getchar();for(i=0;i<m;i++){scanf("%s%lf%s",str1,&x,str2);addEdge(str1,x,str2);}if(floyd())printf("Case %d: Yes\n",++t);elseprintf("Case %d: No\n",++t);}return 0;}
0 0
- NYOJ 188 Arbitrage map 建图 汇率转换
- Arbitrage &&汇率转换问题有向图
- 汇率转换
- POJ2240-Arbitrage-C语言&&NYOJ-188
- 汇率转换 api
- spfa 汇率转换
- 实时汇率转换
- 实时汇率转换
- poj_2240 Arbitrage(Bellman_ford + map)
- Arbitrage(Floyd+map)
- SAP汇率转换的操作
- SAP汇率转换的操作
- 不同币种汇率转换
- SAP 外币金额 汇率 转换
- SAP 外币金额 汇率 转换
- HDU 1217 Arbitrage 【Floyd + map】
- 汇率
- CONVERT_TO_LOCAL_CURRENCY(货币汇率转换) 按日期取汇率
- Oracle学习笔记(四)
- 你大概走了假敏捷:认真说说敏捷的实现和问题(手绘版)
- jQuery
- mongodb查看数据库和表的信息
- 08_代码结构
- NYOJ 188 Arbitrage map 建图 汇率转换
- Spring 面试题总结
- 如何快速重装win10系统?
- mongodb允许远程访问
- 算步数-数学题
- SVN Working Copy locked ,并且进行clean up也还是不行
- zzuli 2134: 维克兹的进制转换
- 替换空格
- jQuery