zoukankan      html  css  js  c++  java
  • poj 1125 Stockbroker Grapevine

    题意:给出一个有N个点的图,求每一个点到其他各点最长距离中的最小值。

    思路:读懂了题意,这题就是一个水到不能再水的题。就是一个flody,然后求出任意两点的最小距离。然后一个二重循环就行了。

    代码:

    View Code
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <math.h>
    #define  N 105
    #define  INF 100000000
    using namespace std ;
    
    int map[N][N] ;
    int n ;
    
    int main()
    {
        int i , j , k , x , y , t ;
    
        while ( scanf ( "%d" , &n ) , n )
        {
            for ( i = 1 ; i <= n ; i++ )
                for ( j = 1 ; j <= n ; j++ )
                    map[i][j] = INF ;
    
            for ( i = 1 ; i <= n ; i++ )
            {
                scanf ( "%d" , &t );
                while ( t-- )
                {
                    scanf ( "%d%d" , &x , &y );
                    map[i][x] = y ;
                }
            }
    
            for ( k = 1 ; k <= n ; k++ )
                for ( i = 1 ; i <= n ; i++ )
                    for ( j = 1 ; j <= n ; j++ )
                        if( map[i][j] > map[i][k] + map[k][j] )
                            map[i][j] = map[i][k] + map[k][j] ;
    
            /*for ( i = 1 ; i <= n ; i++ )
                for ( j = 1 ; j <= n ; j++ )
                  printf ( "%d %d = %d\n" , i , j , map[i][j] );*/
                        
            int ans = INF ;
            int minx , pos ;
            for ( i = 1 ; i <= n ; i++ )
            {
                minx = -1 ;
                for ( j = 1 ; j <= n ; j++ )
                    if ( i != j && map[i][j] > minx )
                    minx = map[i][j] ;
                if ( minx < ans )
                {
                    ans = minx ;
                    pos = i ;
                }
            }
    
            if ( ans == INF )
                printf ( "disjoint\n" );
            else
                printf ( "%d %d\n" , pos , ans ) ;
        }
        return 0 ;
    }

    再次痛恨自己的英语水平,什么时候能够顺利的读下来题啊。

  • 相关阅读:
    Oracle 11G单机 无网络环境静默安装
    Centos 7 编译安装llvm 8.0.0
    linux下测试读写
    Linux 初始化 init 系统(1):sysvinit
    自动挂载文件/etc/fstab功能详解
    虚拟机安装LINUX网络配置注意的问题
    rhel7报错整理
    16/4/4二代支付硬盘故障处理
    RedHat Enterprise Linux 7关闭防火墙方法
    Linux命令之awk数组使用范例
  • 原文地址:https://www.cnblogs.com/misty1/p/2726769.html
Copyright © 2011-2022 走看看