poj 2240 Arbitrage
来源:互联网 发布:服务器机柜和网络机柜 编辑:程序博客网 时间:2024/06/08 07:00
套汇。不同的货币有不同的货币转换规则,给出你一些货币的转换比例,问你是否存在套汇现象。
解法:传递闭包用floyd。初始的汇率比例为1,floyd完了之后看有没有大于1的,如果有则存在套汇。
#include<iostream>#include<cstdio>#include<cstring>#include<map>#include<string>using namespace std;double arry[50][50];int kcase = 0;int n;void floyd(){ for(int k = 0 ; k < n ; k++) { for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { if(arry[i][j] < arry[i][k] * arry[k][j]) { arry[i][j] = arry[i][k]*arry[k][j]; } } } } bool flag = false; for(int i = 0 ; i < n ; i++) { if(arry[i][i] > 1.0 ) { flag = true; break; } } if(flag) { printf("Case %d: Yes\n",++kcase); } else { printf("Case %d: No\n",++kcase); }}int main(){ while(scanf("%d",&n) && n) { memset(arry,0,sizeof(arry)); map<string,int>List; string s1,s2; for(int i = 0 ; i < n ; i++) { cin>>s1; List[s1] = i; arry[i][i] = 1.0; } int m; scanf("%d",&m); double f; for(int i = 0 ; i < m ; i++) { cin>>s1>>f>>s2; int a = List[s1]; int b = List[s2]; arry[a][b] = f; } floyd(); } return 0;}
0 0
- POJ 2240 Arbitrage
- poj 2240 Arbitrage
- POJ 2240 Arbitrage (Floyd)
- poj 2240Arbitrage(Floyd)
- POJ 2240 Arbitrage Floyd
- Poj 2240 Arbitrage
- POJ 2240 Arbitrage
- poj 2240 Arbitrage
- POJ 2240 Arbitrage (spfa)
- POJ 2240 Arbitrage
- POJ 2240 Arbitrage
- Poj 2240 Arbitrage
- POJ 2240 Arbitrage
- POJ 2240 Arbitrage
- POJ 2240 Arbitrage
- POJ 2240 Arbitrage
- POJ-2240-Arbitrage
- poj 2240 Arbitrage
- 【IPV6基础知识】IPV6地址结构
- 1033. To Fill or Not to Fill
- Ubuntu 配置 Tomcat与日常错误解决
- android学习笔记(2.1)--7.20--(5中布局方式+android单位)
- Ubuntu字典app开发(二)——探索与实践
- poj 2240 Arbitrage
- java压缩处理Image图片
- hdu 1257 动态规划
- hdu 1420 Prepared for New Acmer(快速幂入门)
- GetLastError函数返回值的含义
- 数组排序 链表
- Java语言中关键字strictfp的用途
- 湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
- NYOJ 题目400 I'll play a trick on you