POJ 2240 Arbitrage(Floyed-Warshall算法)
题意:给出n种货币,m种兑换比率(一种货币兑换为另一种货币的比率),判断测试用例中套汇是否可行。(套汇的意思就是在经过一系列的货币兑换之后,是否可以获利。例如:货币i→货币j→货币i,这样兑换后,是否可以获利,即比率是否>1)。举个例子理解套汇:假设,1美元买10人民币(比率为10),10人民币买100美元(比率为10)。这就是套汇,总比率=10*10=100,100>1,所以可以获利。
思路:Floyed-Warshall算法,枚举所有的货币之间的兑换比率,最后若存在一种回路且回路比率>1的话,则套汇可行。
课本代码:
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; const int maxn=50;//货币种类上限
const int maxl=1005;//货币名字长度上限 char str[maxn][maxl],stra[maxl],strb[maxl];//货币种类数组str,源货币stra,目标货币strb。 long double dist[maxn][maxn];//比率矩阵 int n,m; int find(char *_str){//查找货币的序号i
for(int i=1;i<=n;i++)
if(strlen(_str)==strlen(str[i])&&strcmp(_str,str[i])==0) return i;
return 0;
} int main(){
while(scanf("%d",&n)&&n){
static int cnt=0;
int i,j,k;
for(i=1;i<=n;i++)//初始化货币比率
for(j=1;j<=n;j++)
dist[i][j]=0;
for(i=1;i<=n;i++)//0不用,作为未知货币。
scanf("%s",str[i]);
scanf("%d",&m);
for(i=1;i<=m;i++){
double w;
scanf("%s %lf %s",stra,&w,strb);
dist[find(stra)][find(strb)]=w;
}
for(k=1;k<=n;k++)//枚举中间节点k
for(i=1;i<=n;i++)//枚举互不相同的节点对(i,j)
for(j=1;j<=n;j++)
if(i!=j&&j!=k&&k!=i)
if(dist[i][k]*dist[k][j]>dist[i][j])
dist[i][j]=dist[i][k]*dist[k][j];
bool flag=0;//标志初始化
for(i=1;i<=n;i++)//枚举每种货币
for(j=1;j<=n;j++)//枚举中间货币
if(dist[i][j]*dist[j][i]>1)//如果比率>1,则套汇可行
flag=1;
printf("Case %d: %s\n",++cnt,flag?"Yes":"No");
}
return 0;
}
POJ 2240 Arbitrage(Floyed-Warshall算法)的更多相关文章
- poj 2240 Arbitrage 题解
		Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21300 Accepted: 9079 Descri ... 
- 最短路(Floyd_Warshall) POJ 2240 Arbitrage
		题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <c ... 
- POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)
		POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ... 
- poj 2240 Arbitrage (Floyd)
		链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 Britis ... 
- POJ 2253 Frogger(warshall算法)
		题意:湖中有很多石头,两只青蛙分别位于两块石头上.其中一只青蛙要经过一系列的跳跃,先跳到其他石头上,最后跳到另一只青蛙那里.目的是求出所有路径中最大变长的最小值(就是在到达目的地的路径中,找出青蛙需要 ... 
- poj 2240 Arbitrage bellman-ford算法
		点击打开链接 Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13434 Accepted: 5657 ... 
- POJ 2240 Arbitrage【Bellman_ford坑】
		链接: http://poj.org/problem?id=2240 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ... 
- POJ 2240 Arbitrage(判正环)
		http://poj.org/problem?id=2240 题意:货币兑换,判断最否是否能获利. 思路:又是货币兑换题,Belloman-ford和floyd算法都可以的. #include< ... 
- POJ  2240 Arbitrage(floyd)
		http://poj.org/problem?id=2240 题意 : 好吧,又是一个换钱的题:套利是利用货币汇率的差异进行的货币转换,例如用1美元购买0.5英镑,1英镑可以购买10法郎,一法郎可以购 ... 
随机推荐
- named主从环境部署
			named主 1. bind服务安装配置 yum -y install bind*.x86_64 配置文件: /etc/named.conf /etc/named.rfc1912.zones /etc ... 
- RabbitMQ集群安装配置+HAproxy+Keepalived高可用
			RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ... 
- php  生成8位数唯一的激活码
			/** *生成激活码 */ function showGenerationActivationCode(){ #渠道类型id $channel_id=$_POST['channel']; #根据渠道i ... 
- OpenResty — Nginx全能插件版
			官网: http://openresty.org/ 虽然是中国人做的,但没几个汉字..... 我用Nginx,是这样一个过程: 1. 系统rpm中的nginx,能让其跑起来 2. 玩配置文件 3. 玩 ... 
- Android Studio 2.0 稳定版新特性介绍
			Android Studio 2.0 最终迎来了稳定版本号,喜大普奔. 以下这篇文章是2.0新特性的一些简介. 假设想看具体内容请看这里<Android Studio有用指南> 文章转自这 ... 
- jqury 如何获取 kindeditor 中textarea 的值
			获取文本内容,可是的创建时怎么也不能获取,利用FF的firebug查看到自己所写的内容在一个iframe中,于是想从iframe中获取文本,想要用 $(“ifame”).html();获取内容,可是依 ... 
- C# 6.0 (C# vNext) 新功能之:Null-Conditional Operator(转)
			Null-Conditional Operator 也叫 Null propagating operator 也叫 Safe Navigation Operator 看名字,应该就有点概念了.如果还不 ... 
- cocos2dx使用cocostudio导出的scene
			local uilocal function createLayerUI() if not ui then ui=cc.Layer:create(); createLayerUI=nil; end r ... 
- 我的Android进阶之旅------>WindowManager.LayoutParams介绍
			本文转载于: http://hubingforever.blog.163.com/blog/static/171040579201175111031938/ 本文参照自: http://develop ... 
- Advanced GET 9.1 修正汉化版(免注册、页面加载、保存都正常)
			http://www.55188.com/viewthread.php?tid=2846679 Advanced GET 9.1 修正汉化版(免注册.页面加载.保存都正常) 网上流传的很多GET9.1 ... 
