poj 1125 Stockbroker Grapevine

来源:互联网 发布:淘宝延长收货 七天退换 编辑:程序博客网 时间:2024/04/29 05:51

【分析】
裸的floyd!


【代码】

//poj 1125 Stockbroker Grapevine#include<iostream>#include<cstring>#include<cstdio>#include<vector>#include<stack>#define fo(i,j,k) for(i=j;i<=k;i++)#define inf 1000000000using namespace std;int dis[101][101],ans[101];int main(){    int i,j,k,u,v,d,n,m;    while(scanf("%d",&n) && n)    {        int mi,t;        fo(i,1,100) fo(j,1,100) dis[i][j]=inf;        memset(ans,0,sizeof ans);        fo(i,1,n)        {            scanf("%d",&m);            fo(j,1,m)            {                scanf("%d%d",&v,&d);                dis[i][v]=d;            }        }        fo(k,1,n)          fo(i,1,n)            fo(j,1,n)              if(i!=j && j!=k && i!=k)                dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);        fo(i,1,n)        {          mi=0;          fo(j,1,n)            if(i!=j)              mi=max(mi,dis[i][j]);          ans[i]=mi;        }        mi=inf;        fo(i,1,n)          if(ans[i]<mi)          {            mi=ans[i];            t=i;          }        if(mi==inf) printf("disjoint\n");        else printf("%d %d\n",t,mi);    }    return 0;}
0 0