2009年12月14日 星期一

TIOJ 1096 E.漢米頓的麻煩 [NPSC2006初賽]

poao899    36K    234MS    G++     0.51K     2009-12-14 15:56:11                                            .

Floyd-Warshall就過了orz


跟之前那題TIOJ 1212 圖論 之 最小圈測試 一模一樣orz

//***********************

#include<stdio.h>
#define INF 1000000000
int dist[110][110],n,min;
main(){
    while(scanf("%d",&n),n){
        min=INF;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++){
                scanf("%d",&dist[i][j]);
                if(!dist[i][j])
                    dist[i][j]=INF;
            }
        for(int k=0;k<n;k++)
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    if(dist[i][k]+dist[k][j]<dist[i][j])
                        dist[i][j]=dist[i][k]+dist[k][j];
        for(int i=0;i<n;i++)
            if(min>dist[i][i])
                min=dist[i][i];
        min==INF?puts("-1"):printf("%d\n",min);
    }
}


沒有留言:

張貼留言