zoukankan      html  css  js  c++  java
  • Poj(2240),Floyd求汇率是不是赚钱

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

    Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max.

    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    #include <algorithm>
    
    using namespace std;
    
    double dis[50][50];
    
    int n;
    
    int main()
    {
        int cases = 1;
        while(scanf("%d",&n),n)
        {
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(i==j)
                        dis[i][j] = 1;
                    else dis[i][j] = 0;
    
            char s[50][50],a[50],b[50];
    
            for(int i=1;i<=n;i++)
                scanf("%s",s[i]);
            int m;
            double t;
            scanf("%d",&m);
    
            for(int i=1;i<=m;i++)
            {
                scanf("%s %lf %s",a,&t,b);
                int j,k;
                for(j=1;j<=n;j++)
                    if(strcmp(s[j],a)==0) break;
                for(k=1;k<=n;k++)
                    if(strcmp(s[k],b)==0) break;
                dis[j][k] = t;
            }
    
            for(int k=1;k<=n;k++)
                for(int i=1;i<=n;i++)
                    for(int j=1;j<=n;j++)
                        dis[i][j] = max(dis[i][j],dis[i][k]*dis[k][j]);
    
    
            bool flag = false;
            for(int i=1;i<=n;i++)
                if(dis[i][i]>1)
                {
                    flag = true;
                    break;
                }
            if(flag)
                printf("Case %d: Yes
    ",cases++);
            else printf("Case %d: No
    ",cases++);
    
    
        }
        return 0;
    }
  • 相关阅读:
    bzoj1648:奶牛野餐
    bzoj1650:跳石子
    bzoj1643:贝西的秘密草坪
    bzoj1639:月度开支
    bzoj1636:Balanced Lineup
    bzoj1634:护花
    .
    bzoj1620:时间管理
    bzoj1611:流星雨
    bzoj1609:麻烦的聚餐
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5730880.html
Copyright © 2011-2022 走看看