zoukankan      html  css  js  c++  java
  • POJ1125 Floyd

    题意:
          给你n个点,问你在哪里选择开会地点,使得到所有点的最长路径最短.


    思路:  n很小,直接Floyd,然后暴力枚举就行了。


    #include<stdio.h>
    
    #define INF 100000000
    
    int map[110][110];
    
    int minn(int a ,int b)
    {
        return a < b ? a : b;
    }
    
    void Floyd(int n)
    {
       for(int k = 1 ;k <= n ;k ++)
       for(int i = 1 ;i <= n ;i ++)
       for(int j = 1 ;j <= n ;j ++)
       map[i][j] = minn(map[i][j] ,map[i][k] + map[k][j]);
    
    }
    
    int main ()
    {
       int n ,i ,j ,nn;
       int b ,c;
       while(~scanf("%d" ,&n) && n)
       {
          for(i = 1 ;i <= n ;i ++)
          for(j = 1 ;j <= n ;j ++)
          {
             if(i == j) map[i][j] = 0;
             else map[i][j] = INF;
          }
          for(i = 1 ;i <= n ;i ++)
          {
             scanf("%d" ,&nn);
             for(j = 1 ;j <= nn ;j ++)
             {
                scanf("%d %d" ,&b ,&c);
                map[i][b] = c;
             }
          }
          Floyd(n);
          int Min = INF ,mk;
          for(i = 1 ;i <= n ;i ++)
          {
             int Max = 0;
             for(j = 1 ;j <= n ;j ++)
             if(Max < map[i][j])
             Max = map[i][j];
             if(Max != INF && Min > Max)
             {
                Min = Max;
                mk = i;
             }
          }
          if(Min == INF) printf("disjoint
    ");
          else printf("%d %d
    " ,mk ,Min);
        }
        return 0;
    }


  • 相关阅读:
    python字典类型
    python集合类型
    python元组类型
    python列表类型
    Python中的序列操作
    python字符串格式化输出
    python可变对象和不可变对象的解释
    Python数值类型
    Python循环结构用法
    python if条件判断语句
  • 原文地址:https://www.cnblogs.com/csnd/p/12063078.html
Copyright © 2011-2022 走看看