• 最短路 poj1125


    输入一个n表示有n个点,接下来n行,每行(假设是u)第一个数字m表示有m对数字(每一对两个数字v,w,表示u到v的时间w),后面接m对数字。找一个起点,它到其他点所花费的时间(求起点到其他点距离的最大值)是最小的(有点绕)。

    思路:用floyd求出点和点的最小距离,然后遍历每个点为起点的情况,找出每个点作为起点到其他点所花费时间最大值里的最小值

    代码:

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define inf 0x3f3f3f
    int map[105][105];
    int n,m,k,t;
    void floyd()
    {
        for(int k=1;k<=n;k++)
        {
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(map[i][j]>map[i][k]+map[k][j])
                    map[i][j]=map[i][k]+map[k][j];
                }
            }
        }
    }
    int main()
    {
        while((cin>>n)&&n)
        {
            int v,w;
            memset(map,inf,sizeof(map));
            for(int i=1;i<=n;i++)
            {
                cin>>m;
                for(int j=0;j<m;j++)
                {
                    cin>>v>>w;
                    if(map[i][v]>w)
                    map[i][v]=w;
                }
            }
            floyd();
            int ans=inf,u=0;
            for(int i=1;i<=n;i++)
            {
                int max1=0;
                for(int j=1;j<=n;j++)
                {
                    if(i!=j)
                    {
                        if(map[i][j]!=inf)
                        max1=max(map[i][j],max1);
                        else
                        break;    //无法到达所有点,直接跳出循环 
                    }
                }
                if(ans>max1)//更新ans和u 
                {
                    ans=max1;
                    u=i;
                }
            }
            if(ans!=inf)
            cout<<u<<' '<<ans<<endl;
            else
            cout<<"disjoint"<<endl;
        }
        return 0;
     } 
  • 相关阅读:
    分布式框架---Dubbox 简介
    MySql 多表查询
    MySql 增删改查
    redis
    spring security 自定义登录页面及从数据库查询账户登录
    java数据结构-
    Maven-
    有关多行相同数据,只显示在第一行的实现
    javaWEB的第一次MVC之旅
    JavaWeb中的 请求转发 和 重定向
  • 原文地址:https://www.cnblogs.com/6262369sss/p/9370273.html
Copyright © 2020-2023  润新知