zoukankan      html  css  js  c++  java
  • poj 1125 基础Floyd

    以后还是不把原题贴出来了。就说大意。

    题意:给出股市经纪人个数n,消息经过每个人需要一定时间,给出不同人之间消息传输的时间,求出从哪个人开始传输消息能最快传遍所有人。

    思路:多源的最短路,Floyd!。

    第一次做FLOYD:总结

    算法核心

    for k-n

    for i-n

    for j-n

        map[i][j]=min(map[i][j],map[i][k]+map[k][j])

    求出多源间的最短路,On^3,适合小规模的数组,凑密图。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    #define inf 0x3f3f3f
    int map[101][101];
    void Floyd(int n)
    {
        int i,j,k;
        for(k=1;k<=n;k++)
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                {
                    map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
                }
                return ;
    }
    int main()
    {
        int i,j,k,time,ans,m;
        int mixn,maxn;
        int n;
        while(cin>>n)
        {
            if(n==0)
            break;
            ans=inf;
            for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {
                map[i][j]=inf;
            }
            for(i=1;i<=n;i++)
            {
                cin>>m;
                map[i][i]=0;
               for(j=1;j<=m;j++)
               {
                   cin>>k>>time;
                   map[i][k]=time;
                   //map[k][i]=time;
               }
            }
            Floyd(n);
            mixn=inf;
            for(i=1;i<=n;i++)
                {
                    maxn=0;
                    for(j=1;j<=n;j++)
                    if(map[i][j]>maxn)
                        maxn=map[i][j];
    
                    if(maxn<mixn)
                    {
                        mixn=maxn;
                        ans=i;
                    }
    
                }
                if(ans==inf)
                cout<<"disjoint"<<endl;
                else
                cout<<ans<<" "<<mixn<<endl;
        }
    }
    


     

  • 相关阅读:
    CodeForces 522B 手速题
    mybatis多数据源报错
    as依赖解决报错
    As 400错
    maven直接饮用jar包的写法
    测试一下多线程同时往list中添加元素会不会出问题
    jmeter中判断数据库是否存在相应的记录
    jmeter打开图形化界面时指定代理
    wz
    初阳胜阴
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134226.html
Copyright © 2011-2022 走看看