poj 1125 Stockbroker Grapevine

来源:互联网 发布:软件资格 编辑:程序博客网 时间:2024/06/10 00:28

题目链接:

http://poj.org/problem?id=1125

题目就是一个裸的floyd,没什么好解释的。。唯一需要注意一点的就是最后遍历查找结果的时候 i==j 时,直接跳过,不介入答案的更新

#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<cmath>using namespace std;int n;int a[150][150];int temp;void floyd(){    for(int k=1;k<=n;k++)    {        for(int i=1;i<=n;i++)        {            for(int j=1;j<=n;j++)            {                if(a[i][k]+a[k][j]<a[i][j])                {                    a[i][j]=a[i][k]+a[k][j];                }            }        }    }}void init(){    while(cin>>n&&n!=0)    {        memset(a,10,sizeof(a));        for(int i=1;i<=n;i++)        {            cin>>temp;            for(int j=1;j<=temp;j++)            {                int y,time;                cin>>y>>time;                a[i][y]=time;            }        }        floyd();        int ans=2000000000,st;        for(int i=1;i<=n;i++)        {            int tmp=0;            for(int j=1;j<=n;j++)            {                if(i==j)                    continue;                if(a[i][j]>tmp)                    tmp=a[i][j];            }            if(ans>tmp)            {                ans=tmp;                st=i;            }        }        cout<<st<<' '<<ans<<endl;    }}int main(){    init();    return 0;}


0 0
原创粉丝点击