POJ 2240 Arbitrage(Floyd算法)
来源:互联网 发布:海康设备网络搜索软件 编辑:程序博客网 时间:2024/06/08 12:41
http://poj.org/problem?id=2240
通过各种货币之间 汇率的转换 能不能赚到钱 运用Floyd算法 求出最后其本身到本身的汇率是否大于1 大于1 就可以赚到钱
AC代码:
#include <stdio.h> #include <string.h> int n,m; char name[50][50]; double map[50][50]; double dis[50][50]; void floyd(){ for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ dis[i][j]=map[i][j]; } } for (int k=1;k<=n;k++){ for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ if (dis[i][j]<dis[i][k]*dis[k][j])// 钱币之间汇率转换 { dis[i][j]=dis[i][k]*dis[k][j]; } } } } } int main (){ char A[35]; char B[35]; double s; int index1,index2; int count=0; while (scanf ("%d",&n)&&n){ getchar(); count++; for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ map[i][j]=0; } } for (int i=1;i<=n;i++){ gets(name[i]); } scanf("%d",&m); getchar(); for (int i=0;i<m;i++){ scanf ("%s %lf %s",A,&s,B); for (int j=1;j<=n;j++){ if (strcmp(name[j],A)==0) index1=j; if (strcmp(name[j],B)==0) index2=j; } map[index1][index2]=s; } floyd(); if (dis[1][1]>1){ printf ("Case %d: Yes\n",count); } else{ printf ("Case %d: No\n",count); } } return 0; }
0 0
- POJ 2240 Arbitrage(Floyd算法)
- POJ 2240 Arbitrage(Floyd)
- poj 2240 Arbitrage (Floyd)
- POJ 2240 Arbitrage(Floyd)
- POJ 2240 Arbitrage( floyd)
- POJ -- 2240 Arbitrage (Floyd‘)
- POJ 2240 Arbitrage (Floyd)
- POJ - 2240 Arbitrage(Floyd)
- poj-2240 Arbitrage(最佳路径 Floyd-Warshall算法)
- zoj 1092 && poj 2240 Arbitrage (floyd算法)
- POJ 2240 Arbitrage (Floyd)
- poj 2240Arbitrage(Floyd)
- POJ 2240 Arbitrage Floyd
- POJ 2240 Arbitrage(Floyd)
- POJ 2240 Arbitrage floyd
- poj 2240 Arbitrage 【floyd】
- POJ-2240 Arbitrage(Floyd)
- zoj 1092 || poj 2240 Arbitrage(Floyd)
- 关于跨域小结
- Unity接微信支付SDK注意事项(自己整理,勿喷~)
- JavaWeb学习八(Session入门)
- Python 如何读取TXT文件
- 【资源】【下载】C# 6.0 and the .NET 4.6 Framework 7th ed. Edition
- POJ 2240 Arbitrage(Floyd算法)
- linux 下载工具
- laravel 判断查询数据库返回值
- 1618
- grunt构建&文件合并&压缩详细教程
- 拷贝构造函数
- Java中权限控制区分
- 操作系统原理与实践6-信号量的实现和应用
- 《跟我一起写Makefile》读书笔记(1)