POJ 2240 Arbitrage (Floyd最短路变形)
来源:互联网 发布:怎么修改数据库时间 编辑:程序博客网 时间:2024/05/16 18:32
题意: 求是否有一种货币经过交易后可以升值 ; 例如1美元换取0.5英镑, 1英镑换取10法币, 1法币换取0.21美元 通过交易, 1美元可以升值为 0.5*10*0.21 = 1.05美元
分析: 题目要求只要有一种货币满足条件即可,所以可用Floyd算法进行处理, 得到任意两种货币间, 最大的交易收益.
Code:
#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#include<algorithm>#include<string>using namespace std;const int maxn = 50;int n, m;char Dtype[maxn][maxn];double dis[maxn][maxn];int getStrId(char c[]){int i;for(i=1; i<=n; i++){if(!strcmp(Dtype[i], c)){return i;}}return 0;}char s[maxn*5], e[maxn*5];double x;string ans;void floyd(){int i, j, k ;for(k=1; k<=n; k++){for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(dis[i][j] < dis[i][k]*dis[k][j]){dis[i][j] = dis[i][k]*dis[k][j];}}}}for(i=1; i<=n; i++){if(dis[i][i] > 1.0){ans = "Yes";return ;}}ans = "No";return ; }int main(){int cas = 0, i, j, k;//freopen("in.txt", "r", stdin);while(scanf("%d", &n), n){for(i=1; i<=n; i++){for(j=1; j<=n; j++){dis[i][j]=1;}}ans="";for(i=1; i<=n; i++) scanf("%s", Dtype[i]);//for(i=1; i<=n; i++) printf("%s\n", Dtype[i]);scanf("%d", &m);//建图int p, q;for(i=1; i<=m; i++){scanf("%s", s);p = getStrId(s);scanf("%lf", &x);scanf("%s", e);q = getStrId(e);dis[p][q] = x;}floyd();printf("Case %d: ", ++cas);cout << ans <<endl;}return 0;}
0 0
- POJ 2240 Arbitrage (Floyd最短路变形)
- poj 2240 Arbitrage 最短路变形 spfa
- POJ 2240 Arbitrage(最短路 Floyd)
- poj 2240 Arbitrage 【最短路&&floyd】
- POJ 2240Arbitrage(最短路floyd)
- POJ 2240 Arbitrage(Floyd最短路)
- poj 2240 Arbitrage(Floyd最短路)
- POJ 2240 Arbitrage 最短路 Floyd
- POJ 2240 Arbitrage(最短路,floyd)
- Arbitrage(最短路-floyd算法变形求正权)
- POJ 题目2240 Arbitrage(最短路变形)
- POJ 2240 Arbitrage 简单变形的Floyd
- POJ 2240 Arbitrage (floyd变形)
- POJ 2240 Arbitrage(Floyd变形)
- poj 2240 Arbitrage 最短路
- POJ 2240 Arbitrage(最短路)
- POJ-2240 Arbitrage(最短路)
- POJ 2253 Frogger(最短路--floyd变形)
- 教你彻底学会动态规划(1)
- Java泛型:泛型类、泛型接口和泛型方法
- HTTP协议详解(转)
- Java并发编程之线程池
- 显著性检测总结之Exploiting Local and Global Patch Rarities for Saliency Detection
- POJ 2240 Arbitrage (Floyd最短路变形)
- Python之文件
- 很特别的一个动态规划入门教程
- qt的QTabelWidget控件单元格读取错误的解决方法
- 百度面经+笔经(转自fengsanshao)
- 构造代码块、局部代码块
- 傅里叶变换的由来及复数下的傅里叶变换公式证明
- L2-012. 关于堆的判断 (堆操作)
- Archlinux+VMWare