设为首页 加入收藏

TOP

HDU 1217 Arbitrage
2014-11-23 22:53:54 来源: 作者: 【 】 浏览:2
Tags:HDU 1217 Arbitrage

题意是说给你N种货币以及,货币与货币之间的M种汇率,
让你判断是否存在经过若干次货币的兑换使得某种货币的
价值大于原来本身的价值,比如所:美元:美元 = 1 : 1;
题意就是让你判断,在当前的货币兑换率的基础上,能不能
使 美元 : 美元 > 1 : 1; 利用Floyd算法即可搞定,代码如下: 1 #include
2 #include
3 #include
4 #define size 40
5 #define inf 0
6 using namespace std;
7 char s1[100],s2[100],str[40][100];
8 double map[size][size], dir[size], x;
9 int n, m, k, a, b, flag = 1;
10
11 int tree(char s[])
12 {
13 for(int a=0;a 14 if(strcmp(s,str[a])==0)return a;
15 }
16
17 int main()
18 {
19 while(scanf("%d", &n), n)
20 {
21 int c,d,e;
22 k=0;
23 for(a=0;a 24 {
25 scanf("%s", &str[a]);
26 }
27 scanf("%d", &m);
28 for(a=0;a 29 for(b=0;b 30 map[a][b]=0;
31 while(m--)
32 {
33 scanf("%s %lf %s", &s1, &x, &s2);
34 a=tree(s1);
35 b=tree(s2);
36 map[a][b]=x;
37 }
38 for(c=0;c 39 for(d=0;d 40 for(e=0;e 41 if(map[d][c]*map[c][e]>map[d][e])
42 {
43 map[d][e]=map[d][c]*map[c][e];
44 if(map[0][0]>1)break;
45 }
46 if(map[0][0]>1)
47 cout<<"Case "< 48 else
49 cout<<"Case "< 50 flag++;
51 }
52 }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇switch default 下一篇HDU 1029 Ignatius and the Princ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: