zoukankan      html  css  js  c++  java
  • POJ 1125

    #include<iostream>
    #include<stdio.h>
    #define MAXN 102
    #define inf 100000000
    using namespace std;
    int _m[MAXN][MAXN];
    int min1[MAXN][MAXN];
    int pre1[MAXN][MAXN];
    typedef int elem_t;
    void floyd_warshall(int n,elem_t mat[][MAXN],elem_t  min[][MAXN],int pre[][MAXN]);
    int main()
    {
        //freopen("acm.acm","r",stdin);
        int num;
        int i;
        int j;
        int k;
        int n;
        int bod;
        int time;
        int max;
        int min;
        while(cin>>num)
        {
            if(num == 0)
                break;
            for(i = 0; i < num; ++ i)
                for(j = 0; j < num; ++ j)
                {
                    _m[i][j] = inf;
                    if(i == j)
                        _m[i][j] = 0;
                }
                
            for(i = 0; i < num; ++ i)
            {
                cin>>k;
                for(j = 0; j < k; ++ j)
                {
                    cin>>n>>time;
                    _m[i][n-1] = time;
                }
            }
            floyd_warshall(num,_m,min1,pre1);
            min = inf;
            for(i = 0; i < num; ++ i)
            {
                max = 0;
                for(j = 0; j < num; ++j)
                {
                    if(min1[i][j] > max)
                    {
                        max = min1[i][j];
                    }
                }
                if(max < min)
                {
                    min = max;
                    bod = i + 1;
                }
            }
            cout<<bod <<" "<<min<<endl;
        }
    }
    
    
    void floyd_warshall(int n,elem_t mat[][MAXN],elem_t  min[][MAXN],int pre[][MAXN]){
        int i,j,k;
        for (i=0;i<n;i++)
            for (j=0;j<n;j++)
                min[i][j]=mat[i][j],pre[i][j]=(i==j)?-1:i;
        for (k=0;k<n;k++)
            for (i=0;i<n;i++)
                for (j=0;j<n;j++)
                    if (min[i][k]+min[k][j]<min[i][j])
                        min[i][j]=min[i][k]+min[k][j],pre[i][j]=pre[k][j];
    }

    关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

    技术网站地址: vmfor.com

  • 相关阅读:
    Python自动化开发课堂笔记【Day02】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    SOCKET.IO 前后端使用
    socket.io的emit使用清单
    nodejs 教程
    斗地主滑动选牌&&出牌
    Cocos Creator大厅+子游戏模式
    cocoscreator热更新
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4563293.html
Copyright © 2011-2022 走看看