• uva 10099【The Tourist Guide】


    忠诚的告诉大家:uva上的题目一定要看清楚格式啊,格式错误也是WA啊,~~~~(>_<)~~~~ 因为一个换行符WA了几次。。。

    Dijkstra的变形。。。求一条路上的最小值然后取多条路中的最大值。。。

    代码如下:
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 
     5 int g[110][110];
     6 int v[110],d[110];
     7 int N,R;
     8 int start,end,per;
     9 int cas;
    10 
    11 bool init()
    12 {
    13     scanf("%d%d",&N,&R);
    14     if(N == 0&&R == 0)
    15         return false;
    16 
    17     memset(v,false,sizeof(v));
    18     memset(g,-1,sizeof(g));
    19 
    20     for(int i = 0;i < R;i ++)
    21     {
    22         int a,b,w;
    23         scanf("%d%d%d",&a,&b,&w);
    24         g[a][b] = g[b][a] = w;
    25         g[a][a] = g[b][b] = 0;
    26     }
    27     scanf("%d%d%d",&start,&end,&per);
    28 
    29     return true;
    30 }
    31 
    32 void solve()
    33 {
    34     memset(d,-1,sizeof(d));
    35     d[start] = 0;
    36 
    37     for(int i = 1;i <= N;i ++)
    38     {
    39         int x = 0,k;
    40         for(int j = 1;j <= N;j ++)
    41         {
    42             if(!v[j] && d[j] > -1&&d[j] >= x)
    43             {
    44                 x = d[k = j];
    45             }
    46         }
    47 
    48         v[k] = true;
    49         for(int j = 1;j <= N;j ++)
    50         {
    51             if(k == start)
    52             {
    53                 d[j] = g[k][j];
    54             }
    55             else
    56                 if(g[k][j] > -1&&j != k)
    57                 {
    58                     int t = std::min(x,g[k][j]);
    59 
    60                     d[j] = std::max(d[j],t);
    61                 }
    62         }
    63     }
    64 
    65     int ans = (per%(d[end]-1) == 0?per/(d[end]-1):(per/(d[end]-1) + 1));
    66     printf("Scenario #%d\nMinimum Number of Trips = %d\n\n",cas ++,ans);
    67 }
    68 
    69 int main()
    70 {
    71     cas = 1;
    72     while(init())
    73     {
    74         solve();
    75     }
    76 
    77     return 0;
    78 }
  • 相关阅读:
    第05组 Alpha冲刺 (6/6)
    第05组 Alpha冲刺 (5/6)
    第五次作业
    第05组 Alpha冲刺 (4/6)
    第05组 Alpha冲刺 (3/6)
    第05组 Alpha冲刺 (2/6)
    第05组 Alpha冲刺 (1/6)
    第四次作业
    差分约束
    置换群的性质与burnside引理
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2454203.html
Copyright © 2020-2023  润新知