poj 1125 最短路

来源:互联网 发布:瞻博网络 上海 电话 编辑:程序博客网 时间:2024/05/16 19:40
#include<cstdio>#include<cstring>#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3fint n;int map[120][120];void Floyd(){for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)map[i][j]=MIN(map[i][j],map[i][k]+map[k][j]);}void init(){for(int i=1;i<=n;i++)    for(int j=1;j<=n;j++)if(i==j)map[i][j]=0;elsemap[i][j]=INF; }int main(){while(~scanf("%d",&n)&&n){init(); for(int i=1;i<=n;i++){int t;scanf("%d",&t);while(t--){int b,v;scanf("%d%d",&b,&v);map[i][b]=v;}}Floyd();int res=INF,lo;for(int i=1;i<=n;i++){int tem=-1;for(int j=1;j<=n;j++){tem=MAX(tem,map[i][j]);}if(tem<res){res=tem;lo=i;}}if(res==INF)printf("disjoint\n");elseprintf("%d %d\n",lo,res);}}

0 0
原创粉丝点击