zoukankan      html  css  js  c++  java
  • 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=1;
    double tmp;
    char a[35],b[35];
    char s[35][50];
    double mp[35][35];
    
    void floyd(){
        int flag=0;
        for(int k=0;k<n;k++)
            for(int i=0;i<n;i++)
                for(int j=0;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=0;i<n;i++){
            if(mp[i][i]>1){
                flag=1;break;
            }
        }
        if(flag) printf("Case %d: Yes
    ",id);
        else printf("Case %d: No
    ",id);
        id++;
    }
    
    int main(){
        while(~scanf("%d",&n)){
            if(n==0) break;
            memset(mp,0,sizeof(mp));
            for(int i=0;i<n;i++){
                scanf("%s",s[i]);
            }
            scanf("%d",&m);
            while(m--){
                scanf("%s%lf%s",a,&tmp,&b);
                for(int j=0;j<n;j++){
                    if(strcmp(a,s[j])==0){
                        x=j;
                        break;
                    }
                }
                for(int j=0;j<n;j++){
                    if(strcmp(b,s[j])==0){
                        y=j;
                        break;
                    }
                }
                mp[x][y]=tmp;
            }
            floyd();
        }
        return 0;
    }
    View Code
  • 相关阅读:
    RedisUtil
    CSS基础知识点笔记
    fdgfgfgfgf
    PerfMon Metrics Collector插件的Disks I/O使用总结
    Jmeter使用笔记之html报告扩展(一)
    Jmeter使用笔记之意料之外的
    Jmeter使用笔记之函数
    Jmeter使用笔记之组件的作用域
    css 初始化文件 全面
    vue-grid-layout 使用以及各项参数作用
  • 原文地址:https://www.cnblogs.com/whdsunny/p/9572096.html
Copyright © 2011-2022 走看看