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;
        }
    }
    


     

  • 相关阅读:
    谷歌浏览器解决跨域
    实现Linux共享Window文件
    linux安装显卡驱动
    jsduck 文档生成器
    linux 笔记
    Linux phpstorm 无法输入中文
    linux 安装composer
    Extjs动态生成表头(适用报表)
    关于git的配置与使用
    JSP解决中文乱码问题
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134226.html
Copyright © 2011-2022 走看看