zoukankan      html  css  js  c++  java
  • Heavy Transportation POJ 1797

    http://poj.org/problem?id=1797

    题意:现给出一些城市的街道,这些街道都从 1 - n 开始编号, 然后街道从 i - j 的负载量给你, 让你求 1 - n 最大的负载量。

    例子:

       1                     从 1 - 2的负载量是3  从 2 - 3的负载量是5  综合考虑来说   1 - 3 的负载量为 3

       3 3                   但 例子中还有1 - 3 为4, 所以 1-3 的负载量 = max(3, 4)

       1 2 3                 其实也就是最短路的模板, 把最短路的条件改一下就行了。

       1 3 4                 

       2 3 5

     

    注意输出格式, 在每个例子后要有一个空格。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #include<queue>
    using namespace std;
    typedef long long LL;
    #define oo 0x3f3f3f3f
    #define maxn 1100
    int maps[maxn][maxn], dist[maxn], v[maxn];
    int n;
    
    void Init()
    {
        for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
         maps[i][j]=maps[j][i] = 0;
    }
    
    int Dij()
    {
        memset(v, 0, sizeof(v));
    
        for(int i=1; i<=n; i++)
            dist[i] = maps[1][i];
    
            v[1] = 1;
    
        for(int i=1; i<n; i++)
        {
            int index, maxs = -1;
            for(int j=1; j<=n; j++)
            {
                if(maxs < dist[j] && !v[j])
                {
                    maxs = dist[j];
                    index = j;
                }
            }
    
            v[index] = 1;
    
            for(int j=1; j<=n; j++)
            {
                if(!v[j] && dist[j] <min(maps[index][j], maxs))
                    dist[j] = min(maps[index][j], maxs);
            }
        }
    
        return dist[n];
    }
    
    int main()
    {
        int T,  m, a, b, c, cnt=1;
    
        scanf("%d", &T);
    
        while(T --)
        {
    
          scanf("%d %d", &n, &m);
          Init();
    
          while(m --)
          {
              scanf("%d %d %d", &a, &b, &c);
              maps[a][b] = maps[b][a] =  c;
          }
    
          int ans = Dij();
          printf("Scenario #%d:
    ", cnt++);
          printf("%d
    
    ", ans);
    
        }
    
        return 0;
    }
    View Code

      

  • 相关阅读:
    创建应用程序菜单与菜单融合 
    FastReport 内置函数的用法与注意
    Visual Basic 2005 中的程式語言加強功能
    写作关键用词及短语汇总
    序列化FastReport
    Only Time(惟有时光)
    bcd
    【分享】微软产品全部序列号,盖茨会哭的~~~
    TADOQuery parameter对象被不正确地定义。提供了不一致或不完整的信息
    两相四线步进电机驱动代码
  • 原文地址:https://www.cnblogs.com/daydayupacm/p/5681948.html
Copyright © 2011-2022 走看看