poj 2240 Arbitrage(最短路+Bellman-Ford)

从零构建物联网监控系统:STM32+迪文屏+WiFi模组的实战解析 本文详细解析了基于STM32微控制器、迪文串口屏和WiFi模组构建物联网监控系统的完整方案。从硬件选型、系统架构设计到数据交互实现,提供了包括迪文屏GUI开发、STM32通信协议、低功耗优化等实战经验,帮助开发者快速掌握物联网监控系统的核心技术。 阅读详情

Arbitrage
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 11886 Accepted: 5000

Description

Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar buys 0.5 British pound, 1 British pound buys 10.0 French francs, and 1 French franc buys 0.21 US dollar. Then, by converting currencies, a clever trader can start with 1 US dollar and buy 0.5 * 10.0 * 0.21 = 1.05 US dollars, making a profit of 5 percent. 

Your job is to write a program that takes a list of currency exchange rates as input and then determines whether arbitrage is possible or not. 

Input

The input will contain one or more test cases. Om the first line of each test case there is an integer n (1<=n<=30), representing the number of different currencies. The next n lines each contain the name of one currency. Within a name no spaces will appear. The next line contains one integer m, representing the length of the table to follow. The last m lines each contain the name ci of a source currency, a real number rij which represents the exchange rate from ci to cj and a name cj of the destination currency. Exchanges which do not appear in the table are impossible. 
Test cases are separated from each other by a blank line. Input is terminated by a value of zero (0) for n.

Output

For each test case, print one line telling whether arbitrage is possible or not in the format "Case case: Yes" respectively "Case case: No".

Sample Input

3
USDollar
BritishPound
FrenchFranc
3
USDollar 0.5 BritishPound
BritishPound 10.0 FrenchFranc
FrenchFranc 0.21 USDollar

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

Sample Output

Case 1: Yes
Case 2: No

Source


思路:只要是经过许多边能让其值大于1,就说明可以套汇,因此可以使用类似于最短路的算法,求最大汇率,bellman-ford.每次往大的松弛的。


#include<iostream>
#include<cstring>
using namespace std;
const int mm=990;
const double oo=1e9;
class node
{
  public:int u,v;double c;
}edge[mm];
char s[33][110],a[mm],b[mm];
double dis[mm];
int n,m,pos;
bool bell_man(int v)
{
  memset(dis,0,sizeof(dis));
  dis[v]=1;
  for(int i=0;i<n;i++)
    for(int j=0;j<pos;j++)
    if(dis[edge[j].v]<dis[edge[j].u]*edge[j].c)
    dis[edge[j].v]=dis[edge[j].u]*edge[j].c;
  if(dis[v]>1.0)return 1;
  else return 0;
}
int main()
{ int cas=0;
  while(cin>>n&&n)
  { pos=0;++cas;
    for(int i=0;i<n;i++)
      cin>>s[i];
    cin>>m;double d;
    for(int i=0;i<m;i++)
    {
      cin>>a>>d>>b;
      int j=-1;
      while(strcmp(s[++j],a)!=0);edge[pos].u=j;j=-1;
      while(strcmp(s[++j],b)!=0);edge[pos].v=j;
      edge[pos++].c=d;
    }
    bool flag=0;
    for(int i=0;i<n;i++)
      if(bell_man(i))
        {flag=1;break;}
        cout<<"Case "<<cas<<": ";
    if(flag)cout<<"Yes\n";
    else cout<<"No\n";
  }
}



小红书图文笔记图像批量爬取:Python爬虫实战与反反爬策略全解析 在当今社交媒体盛行的时代,小红书作为中国领先的生活方式分享平台,积累了海量的优质图文内容。对于数据分析师、市场研究人员或内容创作者来说,能够高效获取这些数据具有重要意义。本文将详细介绍如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取工具,涵盖最新技术栈和反反爬策略。本文详细介绍了如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取系统。通过结合Playwright、aiohttp等现代工具,实现了从列表页采集到图片下载的完整流程。 阅读详情

相关推荐

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4776

hdoj1217

Arbitrage Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description Arbitrage is the use of discrepancies in currency exchange rates to transform o

◆◇丶生如夏花。谁来订阅我的悲伤 562

RC正弦波振荡电路实验全解析:如何通过调节电容电阻改变输出频率

本文深入解析RC正弦波振荡电路,重点阐述如何通过调节电容和电阻来精确改变输出频率。文章从文氏桥振荡电路的核心原理出发,详细介绍了电容粗调频段与电阻微调频率的实操策略,并分析了元件误差、寄生参数等对实测频率的影响,为电路设计与调试提供了从理论到实践的完整指南。

yhn456789的博客 1114

HDU-1217-Arbitrage(SPFA)

这题和以往的求最短路的题目略微有点不一样,以往求的都是最小的,这题求的是大的,而且还是乘法。 我们求的时候初始化的时候就要进行相反的初始化了,把它们初始化为0,然后比较大的就更新。 因为这题的点少边多,所以spfa会比较好,我们对于每种货币都跑一遍,如果其中任何货币的从它到它的路,即d[start]大于1,就说明可以升值。 d[start]的初始值为1,用map 的时候,记得清空,不然反复使用可能...

XYQ BLOG 305

R语言实战:非正态数据下的Scheirer–Ray–Hare检验全流程解析

本文详细解析了在R语言中执行Scheirer–Ray–Hare检验的全流程。当实验数据不符合正态分布时,该非参数检验是分析两因素设计(包括主效应和交互效应)的有效工具。文章从原理、环境配置、数据导入、核心代码到结果解读与报告撰写,提供了完整的实战指南,并附有常见的避坑建议。

weixin_29061465的博客 398

SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程

本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。

y2z3a4b5c的博客 870

Arbitrage(bellman-Ford)

Description Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar buy

Techay的博客 598

24、JavaFX MP3 音频播放器开发详解

本文详细介绍了如何使用JavaFX开发一个功能丰富的MP3音频播放器,涵盖文件拖放加载、音频播放控制、音频频谱可视化、进度定位滑块等核心功能,并提供了完整的代码实现和解析。适合希望学习JavaFX多媒体应用开发的开发者参考。

wind6的博客 170

Arbitrage(最短路 弗洛伊德改动)

ArbitrageTime Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 43   Accepted Submission(s) : 14Problem DescriptionArbitrage is the use of discrepancies ...

机智的大气的晓晓 470

华为OD机试双机位C卷-虚拟文件系统(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【虚拟文件系统】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【虚拟文件系统】。

qq_45776114的博客 477

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。在Unity编辑器中打开一个示例项目,点击BroadCast按钮。4. 再点击Receiver按钮,Start。Build一个示例项目,并运行这个项目。启动Web.app。

每日出拳老爷子的博客 1721

HDU 1217 Arbitrage

题目链接:Arbitrage Floyd算法就是如果i点到k点之间有通路,k点到j点有通路, 且两条通路的长度和小于i点到j点的长度,那就将i点到j距离就是经过k点的长度 对于这个套利的题,就可以用Floyd算法 看是否可以找出一个相乘大于1的路径,因为要想干这件坏事必须保证换一拨钱后钱会变多 还有需要注意的是对map的使用,因为题上给的是字符串,所以我们需要使用map完成一个字符串到数字...

Helloirbd的博客 227

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

POJ - 2240 Arbitrage (最短路 Floyd算法 && Bellman-Ford算法)

Arbitrage  POJ - 2240 Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that

hao_994的博客 375

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

poj 2240 Arbitrage (最短路 bellman_ford)

题目:http://poj.org/problem?id=2240 题意:给定n个货币名称,给m个货币之间的汇率,求会不会增加 和1860差不多,求有没有正环 刚开始没对,不知道为什么用 double往结构体里传值的时候 会去掉小数点后的 数 1 #include <iostream> 2 #include<cstdio> 3 #includ...

weixin_30550271的博客 98

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

poj 2240(bellman_ford 算法)(最短路负权)Arbitrage

又是一道大坑题!! 居然货币可以兑换同一种还是升值的!

hi_just_do_it的博客 434

正权环负权环——kuangbin最短路专题总结(2)

POJ 1860 Currency Exchange POJ 3259 Wormholes POJ 2240 Arbitrage 这个是比较常见的题型了 一般就是用Bellman-Ford算法或者SPFA算法找 货币转换是找正权环看能不能钱生钱hhh 虫洞那题是找负权环看能不能和以前的自己相遇hhh 感觉这种出题都得有很神奇的脑洞 Bellman-Ford的话就是看第n次会不会发生更新,如果会则有...

qq_37087993的博客 338

POJ 2240 Arbitrage Bellman判断有无环 .

题目地址:http://poj.org/problem?id=2240 string s; cin>>s 超级慢 TLE ,用scanf %s 就47ms #include #include #include #include #include using namespace std; const int INF=(1<<30); struct Edge{ int from,to; doub

BRCOCOLI的博客 327

poj2240 Arbitrage

链接:http://poj.org/problem?id=2240  题意:货币交换,本金是否增值。 浅谈:这个题其实和poj1860几乎一样,其实应该比它还简单一点。就是把poj1860的代码改了一下就可以AC了 。有了之前的例子,做这个就快多了。  #include #include using namespace std; struct currency { ch

u012914220的专栏 528

Poj_2240 Arbitrage(最短路)

题意: 套利就是利用汇率的差异使自己的财富得到增加。给出几种货币之间的汇率,问能否通过套利使得财富增加。 思路: 转换为寻找有向图中是否有环。使用Bellman-Ford和SPFA分别实现了一下,SPFA稍微快一点,注意SPFA是入队超过N次。 代码实现: //Bellman-Ford #include #include #include #include #include #

EaShion1994的专栏 527

POJ 2240 - Arbitrage(bellman_ford & floyd)

题意: 给出一些货币和货币之间的兑换比率,问是否可以使某种货币经过一些列兑换之后,货币值增加。 举例说就是1美元经过一些兑换之后,超过1美元。可以输出Yes,否则输出No。 分析: 首先我们要把货币之间的关系转化成一张图。转化时,用STL里面的map很方便。 为每种货币分配一个序列号,一个序列号代表了一个图中间的NODE,而node之间的edge用汇率表示。 ...

dengtiaolu0407的博客 160

poj 2240 Arbitrage 题解

Arbitrage Time Limit:1000MS Memory Limit:65536K Total Submissions:21300 Accepted:9079 Description Arbitrage is the use of discrepancies in currency exc...

diaoxiangxi0422的博客 154

POJ2240 Arbitrage

http://poj.org/problem?id=2240 题目大意:输入一些币种,输入这些币种的汇率,求是否存在套汇(套汇及利用汇率之间的差异,从而将某一单位的币种,兑换回多于一单位的同种货币)。 思路:建立图论模型,每种币种为顶点,两种币种间的汇率为一条有向边,构造好有向网后,问题转化为判断图中是否存在某个顶点,从它出发的某条回路权值乘积大于1,大于1则存在套汇。具体求解时,可用Bell

yxr941225的专栏 697

POJ 1860 Currency Exchange + 2240 Arbitrage + 3259 Wormholes 解题报告

三道题都是考察最短路算法的判环。其中1860和2240判断正环,3259判断负环。 难度都不大,可以使用Bellman-ford算法,或者SPFA算法。也有用弗洛伊德算法的,笔者还不会SF-_-…… 直接贴代码。 1860Currency Exchange: #include <cstdio> #include <cstr...

176

poj-2240-Arbitrage(Bellman-ford算法练习 + Floyd算法练习)

poj-2240-Arbitrage(Bellman-ford算法练习 + Floyd算法练习)

Seeker 3838

POJ2240 Arbitrage BellmaFord判最短路回路

Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21764   Accepted: 9271 Description Arbitrage is the use of discrepancies in currency exchange rat

kyoma的博客 459

poj 2240 Arbitrage(Bellman-Ford算法学习)

Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15806   Accepted: 6648 Description Arbitrage is the use of discrepancies in currency exchange rat

Coding A World 828
上一篇: poj 1067 取石子游戏(博弈+威佐夫博奕(Wythoff Game))
下一篇: poj 3268 Silver Cow Party(最短路+SPFA)
剑不飞
博客等级 码龄15年 86粉丝 505原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值