链接: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])。
#include<stdio.h>
#include<string.h>
int main()
{int n,m,i,j,k,l,r,t=0;char s[35][30],s1[30],s2[30];double a[35][35],c;while(scanf("%d",&n)!=EOF){if(n==0)break;t++;memset(a,0,sizeof(a));         //开始都初始化为0了,而不是无穷大,当然可以初始化为无穷小for(i=1;i<=n;i++){scanf("%s",s[i]);a[i][i]=1.0;               //自己的税率初始化为1}scanf("%d",&m);while(m--){scanf("%s%lf%s",s1,&c,s2);l=r=0;for(i=1;i<=n;i++){if(strcmp(s1,s[i])==0)            //存在自己对自己的兑换率,所有两个字符串可能相等l=i;if(strcmp(s2,s[i])==0)            //之前因为加了 else 将上述情况排除了,一直war=i;if(l&&r)break;}a[l][r]=c;}for(k=1;k<=n;k++)                     //Floyd算法for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(a[i][k]*a[k][j]>a[i][j])             //松弛条件a[i][j]=a[i][k]*a[k][j];k=0;for(i=1;i<=n;i++)if(a[i][i]>1){                k=1;break;}if(k)printf("Case %d: Yes\n",t);elseprintf("Case %d: No\n",t);}return 0;
}

poj 2240 Arbitrage (Floyd)相关推荐

  1. poj 2240 Arbitrage (floyd 变形)

    http://poj.org/problem?id=2240 floyd 的变形 题意 有n个货币,他们的交换情况m个 例如: 3 USDollar BritishPound FrenchFranc ...

  2. POJ 2240题(Floyd)

    //使用Floyd的变形实现 //这就是个套汇的问题,可以用Floyd求最大环,然后判断是不是大于1. #include <cstdio> #include <string> ...

  3. POJ 2240 HDU 1217 Arbitrage(Floyd)

    Description 给定一些货币之间的单向汇率,问一笔钱能否经过若干次对换而增值 Input 多组用例,每组用例第一行为货币种数n,之后n行为货币类型,第n+2行为兑换规则数m,之后m行为货币之间 ...

  4. POJ 2240 Arbitrage(判正环)

    http://poj.org/problem?id=2240 题意: 货币兑换,判断最否是否能获利. 思路: 又是货币兑换题,Belloman-ford和floyd算法都可以的. 1 #include ...

  5. poj 2240 Arbitrage(bellman-ford spfa 判断正环)

    http://poj.org/problem?id=2240 基本和poj 1860相同 只是把单点变成了任意点 做完1860再做这题就完全把思路套上就过了 做完才发现网上的题解都用的是floyd 不 ...

  6. 弗洛伊德算法(Floyd)简介

    弗洛伊德算法(Floyd)简介 Floyd算法适用于解决求最短路径问题,相比于Digkstra算法思路更加简单,更容易理解,但是效率会明显低很多,可以作为初步学习的一种方法. 目录 弗洛伊德算法(Fl ...

  7. 【算法】弗洛伊德(Floyd)算法

    这个算法主要要弄懂三个循环的顺序关系. 弗洛伊德(Floyd)算法过程: 1.用D[v][w]记录每一对顶点的最短距离. 2.依次扫描每一个点,并以其为基点再遍历所有每一对顶点D[][]的值,看看是否 ...

  8. POJ 3414 Pots(罐子)

    POJ 3414 Pots(罐子) Time Limit: 1000MS    Memory Limit: 65536K Description - 题目描述 You are given two po ...

  9. POJ 2240 Arbitrage(SPFA判正环)

    POJ 2240 Arbitrage 题目大意 套利是指利用货币汇率的差异,将一种货币的一个单位转换为同一货币的多个单位.例如,假设1美元买0.5英镑,1英镑买10.0法国法郎,1法国法郎买0.21美 ...

最新文章

  1. 出块过程(2)nodeos 服务器接收消息
  2. Python 科学计算库 Numpy(一)—— 概述
  3. hdu 5418(状态压缩dp+Floyd)
  4. AndroidJava List与equals的微妙关系,小心掉坑里
  5. Mysql权限控制 - 允许用户远程连接
  6. 加拿大计算机硕士gpa不够,加拿大研究生留学申请者绩点低怎么办?这四类应对方法你都知道吗?...
  7. RF修改服务器设置,3-RF服务端程序安装手册V1.0(7页)-原创力文档
  8. GAN-评价指标IS以及FID、KID
  9. android应用开发-从设计到实现 2-4 文字的使用
  10. 快速上手IntelliJ IDEA常用快捷键
  11. RNA-seq 详细教程:分析流程介绍(1)
  12. 夜明け前より瑠璃色な 攻略
  13. linux 源码编译 ./configure 的配置和用法
  14. 183day(Lambda表达式了解)
  15. UDS诊断系列介绍06-22服务
  16. 日落红暖色调调色滤镜luts预设Sunset LUTs 1
  17. 文本情感分析综述[哈工大2010]笔记
  18. 产品基础知识Day05
  19. 如何制作自己的机器人
  20. 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图

热门文章

  1. 豌豆淘打造“云创业”领跑电商新经济,重磅推出科技创业新模式
  2. 烤仔 ⨉ DODO | “顶流”携手,加密艺术家再次集结!
  3. 奇葩程序员遇上了奇葩公司
  4. python库在哪个文件夹里_python库在哪个文件夹下
  5. 基于mapbox搭建可离线的矢量切片地图服务-1.开篇(附成果演示地址)
  6. echarts-地图,定制地图,ARCGIS地图数据转JSON
  7. 2017年中国北京国际妇女儿童产业博览会会刊(参展商名录)
  8. 【江苏|镇江】2022年镇江市京口区定岗特选优秀应届大学毕业生10人公告
  9. Macdown中[toc]无法生成目录解决方法
  10. 浏览器体系结构_了解代理浏览器:体系结构