http://poj.org/problem?id=2240

题意 : 好吧,又是一个换钱的题:套利是利用货币汇率的差异进行的货币转换,例如用1美元购买0.5英镑,1英镑可以购买10法郎,一法郎可以购买0.21美元,所以0.5*10*0.21 = 1.05,从中获利百分之五,所以需要编写一个程序,在进行完转换之后能不能获利,如果能就输出Yes,反之No;

样例解释 :

3
USDollar
BritishPound
FrenchFranc
6
USDollar 0.5 BritishPound
USDollar 4.9 FrenchFranc
BritishPound 10.0 FrenchFranc
BritishPound 1.99 USDollar
FrenchFranc 0.09 BritishPound
FrenchFranc 0.19 USDollar

样例是多组输入的,以0为结束,第一行是一个整数n代表着下面n种货币可以进行转换,再是一个整数m,下面m行代表着m次的转换

思路 :用最短路稍微一修改思路即可

 #include <cstdio>
#include <cstring>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int oo = <<;
const int maxn = ;
double map[maxn][maxn];
int n, m,i,j,k,a,b,cnt = ;
char sh[maxn][maxn];
char sh1[maxn],sh2[maxn];
void floyd()
{
for(k = ; k < n; k++)
{
for(i = ; i < n; i++)
{
for(j = ; j < n; j++)
{
if(map[i][k]*map[k][j] > map[i][j])
{
map[i][j] = map[i][k]*map[k][j];
}
}
}
}
int flag = ;
for(i = ; i < n ; i++)
{
if(map[i][i] > 1.0)
{
flag = ;
break;
}
}
if(flag)
printf("Case %d: Yes\n",cnt);
else
printf("Case %d: No\n",cnt);
} int main()
{
double t;
while(scanf("%d",&n)&&n)
{
cnt++;
memset(map,oo,sizeof(map));
for(i = ; i < n ; i++)
{
scanf("%s",sh[i]);
map[i][i] = 1.0 ;
}
scanf("%d",&m);
for(i = ; i <m ; i++)
{
scanf("%s %lf %s",sh1,&t,sh2);
for(j = ; j < n ; j++)
{
if(strcmp(sh1,sh[j]) == )
{
//a = j ;
break;
}
}
for(k = ; k < n ; k++)
{
if(strcmp(sh2,sh[k]) == )
{
//b = k ;
break ;
}
}
map[j][k] = t;
}
floyd();
}
return ;
}

最新文章

  1. 在ASP.NET Core中怎么使用HttpContext.Current
  2. 将数据集做成VOC2007格式用于Faster-RCNN训练
  3. js系列(9)js的运用(一)
  4. .net调用存储过程碰到的一个问题
  5. SQL Server sql 操作
  6. linux tar使用
  7. css换行和超出隐藏
  8. Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交
  9. Tomcat启动时报错:java.net.UnknownHostException
  10. CSS3动画与JS动画的优缺点?
  11. 亚马逊EC2服务器申请+NODE服务器部署+阿里云域名申请+SSL证书使用
  12. java用JDBC连接MySQL数据库的详细知识点
  13. visual studio code (vsc)中查看 php 数组的全部元素
  14. 计算请假天数JavaScript方法
  15. 常用的cpl 命令 运行直接打开控制台的简单方法
  16. Error: Couldn&#39;t find preset &quot;env&quot; relative to directory &quot;/Users/user/ethereumjs-vm&quot;
  17. 剑指Offer——平衡二叉树
  18. c++下基于windows socket的服务器客户端程序(基于UDP协议)
  19. Robot Framework常用关键字介绍
  20. bug最后汇总-2018/08/03

热门文章

  1. jquery的change 事件
  2. spring MVC项目中,欢迎页首页根路径到底是怎么设置的
  3. HTML5-draggable(拖放)
  4. js设计模式(3)---桥接模式
  5. silverlight视频、音频
  6. crontab的应用
  7. Summary of Amazon Marketplace Web Service
  8. 实现Server.UrlEncode和Server.UrlDecode功能的js代码
  9. oracle创建用户,修改用户,删除用户等关于用户的
  10. string和stringBuilder的区别