zoukankan      html  css  js  c++  java
  • POJ

    题目链接:http://poj.org/problem?id=2240

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <map>
    using namespace std;
    /****************************************************************************************************************
                题意:给定 N 种货币以及货币之间的汇率,问是否通过兑换可以赚钱
                思路:
                1,利用floyd求每两个点最短路的思想,更新每两种货币之间兑换情况
                2,当 Map[i][i] > 1,即通过兑换之后货币本身之间的兑换率 > 1,那么就是赚钱了
                3,更新时注意汇率是乘运算,不是加运算
                4,最后遍历每种货币,有赚钱情况输出Yes,否则输出No.
    ****************************************************************************************************************/
    double Map[35][35];
    map <string ,int> name;
    int main()
    {
        int m,n;
        int num=1;
        while(cin>>n,n!=0)
        {
            name.clear();
            memset(Map,0,sizeof(Map));
            for(int i = 1;i <= n;i ++)
                Map[i][i]=1;
    
            string s;
            for(int i = 1;i <= n;i ++){
                cin>>s;
                name[s]=i;
            }
            cin>>m;
            string s1,s2;
            double rate;
            while(m--)
            {
                cin>>s1>>rate>>s2;
                Map[name[s1]][name[s2]]=rate;
            }
    
            for(int k = 1;k <= n;k ++)
                for(int i = 1;i <= n;i ++)
                    for(int j = 1;j <= n;j ++)
                        if(Map[i][k] && Map[i][j] < Map[i][k]*Map[k][j])
                            Map[i][j]=Map[i][k]*Map[k][j];
    
            int flag=0;
            for(int i = 1;i <= n;i ++){     //遍历所有货币情况
                if(Map[i][i] > 1){
                    flag=1;
                    break;
                }
            }
            if(flag)
                cout<<"Case "<<num++<<": Yes"<<endl;
            else
                cout<<"Case "<<num++<<": No"<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    python之线程queue
    python多线程之threading模块
    原型模式
    设计模式之工厂方法模式
    装饰模式
    策略模式
    工厂模式之简单工厂模式
    python之SocketServer
    python之socket网络编程
    下载好的vue项目如何在自己电脑环境上运行,步骤!!
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351985.html
Copyright © 2011-2022 走看看