zoukankan      html  css  js  c++  java
  • poj 2240 Arbitrage

    又是套汇为题,初始化d数组为1就可以了,用bellman—ford算法。

     1 #include<stdio.h>
     2 #include<string.h>
     3 
     4 int n, m, num, u[2000], v[2000];
     5 double w[2000], d[50], ra;
     6 char s[50][100], s1[100], s2[100];
     7 
     8 void solve()
     9 {
    10     for(int i = 0; i <= n; i ++) d[i] = 1;
    11     for(int k = 0; k < n-1; k ++)
    12         for(int i = 0; i < m; i ++)
    13         {
    14             int x = u[i], y = v[i];
    15             if(d[y] < d[x]*w[i]) d[y] = d[x]*w[i];
    16         }    
    17     int flag = 0;
    18     for(int i = 0; i < m; i++)
    19     {
    20         int x = u[i],y = v[i];
    21         if(d[y] < d[x]*w[i]) flag = 1;
    22     }
    23     if(flag == 1) printf("Case %d: Yes\n",num++);
    24     else printf("Case %d: No\n",num++);
    25 }
    26 
    27 void init()
    28 {
    29     while(scanf("%d",&n))
    30     {
    31         if(n == 0) break;
    32         for(int i = 0; i < n; i ++)
    33             scanf("%s",s[i]);
    34         scanf("%d",&m);
    35         for(int i = 0; i < m; i ++)
    36         {
    37             scanf("%s",s1);
    38             scanf("%lf",&ra);
    39             scanf("%s",s2);
    40             int a, b;
    41             for(int j = 0; j < n; j ++)
    42             {
    43                 if(!strcmp(s[j], s1)) a = j;
    44                 if(!strcmp(s[j], s2)) b = j;
    45             }
    46             u[i] = a;
    47             v[i] = b;
    48             w[i] = ra;
    49         }
    50         solve();
    51     }    
    52 }
    53 
    54 int main()
    55 {
    56     num = 1;
    57     init();
    58     return 0;
    59 }
  • 相关阅读:
    比较全的笔记
    ios路线
    字符串颜色
    ios 开发学习步骤
    百度地图反地理
    p12证书
    ios官方demo
    ios视频网盘
    图片穿透
    OC温习一:基本数据类型
  • 原文地址:https://www.cnblogs.com/yuzhaoxin/p/2621701.html
Copyright © 2011-2022 走看看