HDOJ 1217 Arbitrage (最短路)
题意:每两种货币之间都有不同的汇率 如果换回自己最后是赚的 输出Yes 否则是No
因为最多只有三十种货币 所以用Floyd是可行的 与一般的最短路板子不同的地方 汇率是要乘而不是加 如果乘上一个小于1的数就会比之前小
将每种货币看作点 汇率建边 如果这两种货币不能兑换 就设为0 最后与自己判断是否大于1 如果是 则存在套利 如果不是就不存在
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
int n,m,x,y,id=;
double tmp;
char a[],b[];
char s[][];
double mp[][]; void floyd(){
int flag=;
for(int k=;k<n;k++)
for(int i=;i<n;i++)
for(int j=;j<n;j++)
if(mp[i][j]<mp[i][k]*mp[k][j])
mp[i][j]=mp[i][k]*mp[k][j];
for(int i=;i<n;i++){
if(mp[i][i]>){
flag=;break;
}
}
if(flag) printf("Case %d: Yes\n",id);
else printf("Case %d: No\n",id);
id++;
} int main(){
while(~scanf("%d",&n)){
if(n==) break;
memset(mp,,sizeof(mp));
for(int i=;i<n;i++){
scanf("%s",s[i]);
}
scanf("%d",&m);
while(m--){
scanf("%s%lf%s",a,&tmp,&b);
for(int j=;j<n;j++){
if(strcmp(a,s[j])==){
x=j;
break;
}
}
for(int j=;j<n;j++){
if(strcmp(b,s[j])==){
y=j;
break;
}
}
mp[x][y]=tmp;
}
floyd();
}
return ;
}
HDOJ 1217 Arbitrage (最短路)的更多相关文章
- HDOJ  1217  Arbitrage(拟最短路,floyd算法)
		
Arbitrage Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
 - POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)
		
POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...
 - [ACM] hdu 1217 Arbitrage (bellman_ford最短路,推断是否有正权回路或Floyed)
		
Arbitrage Problem Description Arbitrage is the use of discrepancies in currency exchange rates to tr ...
 - HDU 1217 Arbitrage (Floyd)
		
Arbitrage http://acm.hdu.edu.cn/showproblem.php?pid=1217 Problem Description Arbitrage is the use of ...
 - POJ 2240 Arbitrage(最短路 套汇)
		
题意 给你n种币种之间的汇率关系 推断是否能形成套汇现象 即某币种多次换为其他币种再换回来结果比原来多 基础的最短路 仅仅是加号换为了乘号 #include<cstdio> #in ...
 - hdu 1217 Arbitrage (最小生成树)
		
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1217 /************************************************* ...
 - hdu 1217 Arbitrage (spfa算法)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1217 题目大意:通过货币的转换,来判断是否获利,如果获利则输出Yes,否则输出No. 这里介绍一个ST ...
 - hdu 1217 Arbitrage(佛洛依德)
		
Arbitrage Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
 - poj-------(2240)Arbitrage(最短路)
		
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15640 Accepted: 6563 Descri ...
 
随机推荐
- request.getSession()几种获取情况之间的差异
			
一.三种情况如下 HttpSession session = request.getSession(); HttpSession session = request.getSession(true); ...
 - CodeForces1065F 树形dp
			
http://codeforces.com/problemset/problem/1065/F 你有一棵带有n个结点的树,根是结点1.有一个标记,最初在根结点处.你可以将标记移动到其他结点处.假设标记 ...
 - as依赖解决报错
			
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.suppor ...
 - dubbo基础
			
一.什么是dubbo,有什么用 dubbo是阿里巴巴开源的一个RPC框架,用于多个应用相互通信.使用dubbo需要安装一zookepper 二.dubbo的基本使用 1.构建一个maven的多模块项目 ...
 - spring创建bean模式singleton与prototype的区别
			
spring 创建bean有单例模式(singleton)和原始模型模式(prototype)这两种模式. 在默认的情况下,Spring中创建的bean都是单例模式的(注意Spring的单例模式与Go ...
 - NameNode 与 SecondaryNameNode 的工作机制
			
一.NameNode.Fsimage .Edits 和 SecondaryNameNode 概述 NameNode:在内存中储存 HDFS 文件的元数据信息(目录) 如果节点故障或断电,存在内存中的数 ...
 - netty的HelloWorld演示
			
pom <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artif ...
 - C语言:使用结构体和指针函数实现面向对象思想(OO编程)
			
原文:https://www.linuxidc.com/Linux/2016-12/138789.htm 有关:<C语言:过年回家 发现只有我没有对象> 一.基础研究 观察如下两个程序a. ...
 - css 绝对定位实现水平垂直居中
			
负margin实现水平垂直居中 width: 500px; height: 500px; position: absolute; left: 50%; top :50%; margin-left: - ...
 - POJ 3070(求斐波那契数 矩阵快速幂)
			
题意就是求第 n 个斐波那契数. 由于时间和内存限制,显然不能直接暴力解或者打表,想到用矩阵快速幂的做法. 代码如下: #include <cstdio> using namespace ...