HDU 1217 Arbitrage
来源:互联网 发布:mac pl2302 编辑:程序博客网 时间:2024/04/29 22:14
问题描述:
假设一美元可以换0.5英镑,一英镑可以换10.0法币,一法币可以换0.21美元,一个聪明的商人会发现用一美元最终可以换取1.05美元,有5%的利息呢
输入:
输入包括一个或多个案例,每个案例的第一行是一个整数n(1<=n<=30),代表不同利息的数目。下边n行包括每个利息的名字。下边包含一个整数m,代表要遵循的表。最后m行中,每一行包含原汇率名ci,一个值rij代表从ci到目的汇率名cj的值。
测试集通过一个空行分割开,n值为0时结束输入。
输出:
每一个案例,都按照要求的格式”Case case:Yes/No"来输出是否存在可获利的交易。
Sample Input
3USDollarBritishPoundFrenchFranc3USDollar 0.5 BritishPoundBritishPound 10.0 FrenchFrancFrenchFranc 0.21 USDollar3USDollarBritishPoundFrenchFranc6USDollar 0.5 BritishPoundUSDollar 4.9 FrenchFrancBritishPound 10.0 FrenchFrancBritishPound 1.99 USDollarFrenchFranc 0.09 BritishPoundFrenchFranc 0.19 USDollar0
Sample Output
Case 1: YesCase 2: No
这道题目其实还是最短路径的题目,只不过最终是求最大值的问题。把加编成乘就好了。最后也很关键,要判断每一个graph[i][i]是否会大于1,只要存在就YEs了,否则No
import java.util.*;public class Main1217 {public static void main(String[] args){Scanner cin=new Scanner(System.in); int count=1;while(cin.hasNext()){int num=cin.nextInt();if(num==0)break;ArrayList<String> al=new ArrayList<String>();double[][] graph=new double[30][30];for(int i=0;i<num;i++){al.add(cin.next());}for(int i=0;i<num;i++)for(int j=0;j<num;j++)if(i==j)graph[i][j]=1;else graph[i][j]=0;int tableNum=cin.nextInt();for(int i=0;i<tableNum;i++){String sta=cin.next();double value=cin.nextDouble();String en=cin.next();if(graph[al.indexOf(sta)][al.indexOf(en)]<value)graph[al.indexOf(sta)][al.indexOf(en)]=value;}for(int k=0;k<num;k++)for(int i=0;i<num;i++)for(int j=0;j<num;j++)if(graph[i][k]*graph[k][j]>graph[i][j]){graph[i][j]=graph[i][k]*graph[k][j];}int i=0;for(i=0;i<num;i++)if(graph[i][i]>1){System.out.println("Case "+(count++)+":"+" Yes");break;}if(i>=num)System.out.println("Case "+(count++)+":"+" No");}}}
0 0
- HDU 1217 Arbitrage
- hdu 1217 Arbitrage--Floyd
- Hdu-1217 Arbitrage
- HDU 1217 Arbitrage
- hdu 1217 Arbitrage
- hdu 1217 Arbitrage
- HDU 1217 Arbitrage
- hdu 1217 Arbitrage
- HDU 1217 Arbitrage
- HDU 1217 Arbitrage
- hdu 1217 Arbitrage
- HDU 1217 Arbitrage
- hdu 1217 Arbitrage
- hdu 1217 Arbitrage
- hdu 1217 Arbitrage
- HDU 1217 Arbitrage 图
- hdu 1217 Arbitrage
- hdu 1217 Arbitrage
- 赋值操作符
- 作业周转时间以及平均等待时间
- thinkphp学习记事
- android BaseFragment 工具类
- 数据挖掘学习
- HDU 1217 Arbitrage
- MFC中关于UINT与USHORT
- 《python计算机视觉编程》读书笔记------9(图像导数)
- 桌面点击:右键-显示设置,提示"该文件没有与之关联的程序来执行该操作"
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-28
- jQuery transform/action类型静态工具方法探究
- 数据库中变量访问
- 界面
- Android中RelativeLayout和LinearLayout性能分析