股票经济人通信网络 poj 1125 多源最短路

来源:互联网 发布:c 字符串数组拷贝 编辑:程序博客网 时间:2024/04/30 19:04

题目大意

就是在一个有向图中找一个点,要求这个点和离他最远的点的最短路最近。

分析

直接上floyd,水~~~

code

#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>#define fo(i,a,b) for (int i=a;i<=b;i++)#define dfo(i,a,b) for (int i=a;i>=b;i--)using namespace std;int f[101][101];int n;int main(){    while(scanf("%d",&n)!=EOF && n)      {        fo(i,1,n)            fo(j,1,n)                f[i][j]=1000000;        fo(i,1,n)        {            int m=0;            scanf("%d",&m);            fo(j,1,m)            {                int a,b;                scanf("%d%d",&a,&b);                f[i][a]=b;            }        }        fo(k,1,n)            fo(i,1,n)                fo(j,1,n)                    if ((i!=j)&&(i!=k)&&(j!=k))                        if (f[i][j]>f[i][k]+f[k][j])                            f[i][j]=f[i][k]+f[k][j];        int ans=0;        int num=1000000;        fo(i,1,n)        {            int ma=0;            fo(j,1,n)            {                if (i==j)                    continue;                ma=max(ma,f[i][j]);            }            if (num>ma)            {                num=ma;                ans=i;            }        }        printf("%d %d\n",ans,num);    }}
0 0