POJ 2240题(Floyd)
//使用Floyd的变形实现
//这就是个套汇的问题,可以用Floyd求最大环,然后判断是不是大于1。
#include <cstdio>
#include <string>
#include <map>
using namespace std;
map<string,int> MAP;
double value[31][31];
double rate;
double tempfloat;
int main()
{
int i,j,k,n,m;
int count=1;
char temp[100],temp1[100];
while(scanf("%d",&n))
{
if(n==0)
break;
MAP.clear(); //清空map
memset(value,0,sizeof(value)); //double类型的二位数组也可用memset进行初始化
for(i=1;i<=n;i++)
{
scanf("%s",temp);
MAP[(string)temp]=i;
}
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%s %lf %s",temp,&rate,temp1);
value[MAP[(string)temp]][MAP[(string)temp1]]=rate;
}
//此处使用Floyd算法实现
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
tempfloat=value[i][k]*value[k][j];
if(tempfloat>value[i][j]) //此处注意与传统的Floyd算法不同,此处的松弛操作是往大的方向
value[i][j]=tempfloat;
}
for(i=1;i<=n;i++)
if(value[i][i]>1) //判断环
{
printf("Case %d: Yes\n",count++);
break;
}
if(i==n+1)
printf("Case %d: No\n",count++);
}
}
转载于:https://www.cnblogs.com/north_dragon/archive/2010/04/28/1723349.html
POJ 2240题(Floyd)相关推荐
- Poj(2240),Floyd求汇率是不是赚钱
题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...
- poj 2240 Arbitrage (Floyd)
链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 Britis ...
- I - Arbitrage POJ - 2240
I - Arbitrage POJ - 2240 题意: 利用汇率之间的差价判断是否可以赚钱 思路: 利用 spfa 跑最长路(即松弛条件改为取更大的值),判断是否存在正环,存在则可以赚钱 #incl ...
- POJ 2240 Arbitrage(SPFA判正环)
POJ 2240 Arbitrage 题目大意 套利是指利用货币汇率的差异,将一种货币的一个单位转换为同一货币的多个单位.例如,假设1美元买0.5英镑,1英镑买10.0法国法郎,1法国法郎买0.21美 ...
- POJ 刷题系列:2993. Emag eht htiw Em Pleh
POJ 刷题系列:2993. Emag eht htiw Em Pleh 传送门:2993. Emag eht htiw Em Pleh 题意: 与2996相反,给出所有棋子的坐标关系,可视化boar ...
- poj 2240 Arbitrage (floyd 变形)
http://poj.org/problem?id=2240 floyd 的变形 题意 有n个货币,他们的交换情况m个 例如: 3 USDollar BritishPound FrenchFranc ...
- POJ 2240 HDU 1217 Arbitrage(Floyd)
Description 给定一些货币之间的单向汇率,问一笔钱能否经过若干次对换而增值 Input 多组用例,每组用例第一行为货币种数n,之后n行为货币类型,第n+2行为兑换规则数m,之后m行为货币之间 ...
- POJ 2240 Arbitrage(判正环)
http://poj.org/problem?id=2240 题意: 货币兑换,判断最否是否能获利. 思路: 又是货币兑换题,Belloman-ford和floyd算法都可以的. 1 #include ...
- poj 2240 Arbitrage(bellman-ford spfa 判断正环)
http://poj.org/problem?id=2240 基本和poj 1860相同 只是把单点变成了任意点 做完1860再做这题就完全把思路套上就过了 做完才发现网上的题解都用的是floyd 不 ...
最新文章
- 2022-2028年中国汽车内饰行业市场需求与投资规划分析报告
- Android Binder基本概念流程学习
- 计算机网络与网页制作教程,计算机网络与网页制作:Dreamweaver CS5案例教程/高等学校通识教育系列教材简介,目录书摘...
- layui弹出层:倒计时后自动关闭(含代码、案例)
- 从民办三本到知名企业感知算法工程师
- title属性样式 原生dom_HTML DOM title 属性
- Idea中maven项目中导入本地jar包
- 基于VB.Net的FTP操作的类(可以显示进度条)
- 深入浅出Word2Vec原理解析
- Photoshop CS6安装教程
- 关于向量的叉乘右手定则判方向
- java 多线程详细(转载)
- 计算机盘0字节可用,本地磁盘显示0字节可用数据恢复方法教程
- 紧急通知,1秒下达给员工 | 巴别鸟 V5.0上线
- data为什么是一个函数
- python发短信sim800_玩转 ESP32 + Arduino (十八) 采用SIM800L发送短信和定位(基础知识)...
- Android usb 控制传输,【android之USB通信】android之USB数据传输-Go语言中文社区
- 神武手游宠物加点方法及属性参考
- 让Enter键实现Tab键的功能
- python中爬虫隐藏身份的设置