zoukankan      html  css  js  c++  java
  • poj 2240

    题意;每两种货币之间有一种汇率 给定货币种类与汇率  问一种货币能否经过兑换后价值增大

    思路:floyd算法的简单应用

    #include<iostream>
    #include<cstring>
    using namespace std;
    double map[111][111];
    char s[33][111];
    int n;
    int get(char s1[])
    {
        for(int i=1;i<=n;i++)
            if(strcmp(s[i],s1)==0) return i;
    }
    bool floyd()
    {
        int i,j,k;
        for(k=1;k<=n;k++)
        {
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    if(map[i][k]*map[k][j]>map[i][j])
                        map[i][j]=map[i][k]*map[k][j];
        }
        for(i=1;i<=n;i++)
            if(map[i][i]>1) return true;
        return false;
    }
    int main()
    {
        int i,m;
        double rate;
        char s1[111],s2[111];
        int cas=0;
        while(scanf("%d",&n)!=EOF)
        {
            cas++;
            if(n==0) break;
            memset(map,0,sizeof(map));
            for(i=1;i<=n;i++)
                cin>>s[i];
            cin>>m;
            while(m--)
            {
                cin>>s1>>rate>>s2;
                int u=get(s1);
                int v=get(s2);
                map[u][v]=rate;
            }
            if(floyd())
                printf("Case %d: Yes
    ",cas);
                
            else printf("Case %d: No
    ",cas);
        }
        return 0;
    }
  • 相关阅读:
    git学习
    Command Line
    python之测试
    python之模块
    python之函数
    python之类
    python之错误和异常
    python之迭代器和生成器
    python之字典和集合
    python之列表和元组
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3772892.html
Copyright © 2011-2022 走看看