poj 2240(floyd)】的更多相关文章

http://poj.org/problem?id=2240 题意:有些人会利用货币的不用汇率来进行套现,比如1美元换0.5英镑,而1英镑又可以换10法郎,而1法郎又可以换0.21的美元,那么经过货币的汇率转换后,它就可以获得1.05倍原来的美元. 现在给你N中货币,m种货币的汇率,求是否可以获利. 思路:首先这个是给你一些货币,那么我们可以把货币和数字建立一个映射.然后再用他给的汇率以及数字建立一个邻接矩阵.用一次floyd后对对角线的数字进行判断,如果大于1,那么说明可以获利,不然就不能获利…
题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> using namespace std; ][]; int n; int main() { ; while(scanf("%d",&am…
Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17349   Accepted: 7304 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 currenc…
链接:poj 2240 题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率. 如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 BritishPound. 问在这N种货币中是否存在货币经过若干次兑换后,兑换成原来的货币能够使货币量添加. 思路:本题事实上是Floyd的变形.将变换率作为构成图的路径的权值.只是构成的图是一个有向图. 最后将松弛操作变换为:if(dis[i][j]<dis[i][k]*dis[k][j]). #includ…
题目传送门 /* 最短路:Floyd模板题 只要把+改为*就ok了,热闹后判断d[i][i]是否大于1 文件输入的ONLINE_JUDGE少写了个_,WA了N遍:) */ #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <string> #include <map> #include <cmath>…
POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) 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 exa…
Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21300   Accepted: 9079 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 currenc…
http://poj.org/problem?id=2240 题意 : 好吧,又是一个换钱的题:套利是利用货币汇率的差异进行的货币转换,例如用1美元购买0.5英镑,1英镑可以购买10法郎,一法郎可以购买0.21美元,所以0.5*10*0.21 = 1.05,从中获利百分之五,所以需要编写一个程序,在进行完转换之后能不能获利,如果能就输出Yes,反之No: 样例解释 : 3 USDollar BritishPound FrenchFranc 6 USDollar 0.5 BritishPound…
题意: 给出一些货币和货币之间的兑换比率,问是否可以使某种货币经过一些列兑换之后,货币值增加. 举例说就是1美元经过一些兑换之后,超过1美元.可以输出Yes,否则输出No. 分析: 首先我们要把货币之间的关系转化成一张图.转化时,用STL里面的map很方便. 为每种货币分配一个序列号,一个序列号代表了一个图中间的NODE,而node之间的edge用汇率表示. 一开始用Dijkstra算法做,死活AC不了,网友给的理由是: 由于Dijkstra算法不能处理带有负权值的最短路,但此题中,两种货币之间…
#include <iostream> #include <map> #include <string> #include <memory.h> using namespace std; ; int n; //货币种类 int m; //兑换方式 mapSTL; //建立一个字符串与整数一一对应的容器STL,以便利用邻接矩阵存储数据 double rate; ],str1[],str2[]; ][]; int i,j,k; void floyd(void)…