poj1125Stockbroker Grapevine(最短路floyd)

这是一道很简单的floyd题目,题中说找到那个每个人到其他人最大的时间,然后从中找到最小值,直接一遍floyd就行,so easy

#include <iostream>
#include <string.h>
using namespace std;
const int INF=0x3f3f3f3f;
int dis[205][205];
int sum[205];
int n;
void prepare()
{
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
        {
            if(i==j)
                dis[i][j]=0;
            else dis[i][j]=INF;
        }
}
int main()
{
    int m,x,w;
    while(cin>>n)
    {
        memset(sum,0,sizeof(sum));
        memset(dis,0,sizeof(dis));
        memset(dis,0,sizeof(dis));
        if(n==0)
            break;
        prepare();
        for(int i=1; i<=n; i++)
        {
            cin>>m;
            for(int j=1; j<=m; j++)
            {
                cin>>x>>w;
                dis[i][x]=w;
            }
        }
        for(int k=1; k<=n; k++)
            for(int i=1; i<=n; i++)
                for(int j=1; j<=n; j++)
                    dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
            {
                sum[i]=max(dis[i][j],sum[i]);
            }
        }
        int ans=INF,flag=0;
        for(int i=1; i<=n; i++)
        {
            if(ans>sum[i])
            {
                ans=sum[i];
                flag=i;
            }
        }
        if(ans==INF)
            cout<<"disjoint"<<endl;
        else cout<<flag<<" "<<ans<<endl;

    }
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zcmartin2014214283/article/details/51537065
文章标签: poj
个人分类: 最短路径
上一篇poj2240Arbitrage(最短路floyd)
下一篇poj1258Agri-Net(最小生成树)
想对作者说点什么? 我来说一句

POJ1125-Stockbroker GrapevineFloyd

2011年07月30日 15KB 下载

floyd最短路算法

2009年08月24日 299B 下载

最短路Floyd算法

2014年04月04日 229KB 下载

floyd最短路

2010年07月04日 20KB 下载

Floyd最短路

2018年01月03日 1KB 下载

floyd最短路径算法

2014年11月01日 800B 下载

floyd算法matlab实现

2011年05月05日 26KB 下载

floyd最短路matlab编程

2016年05月24日 787B 下载

图论最短路Floyd

2008年09月12日 388KB 下载

没有更多推荐了,返回首页

关闭
关闭