码迷,mamicode.com
首页 > 其他好文 > 详细

poj2485

时间:2019-09-02 20:57:57      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:最长路   net   namespace   visit   eof   map   algo   min   amp   

1.链接地址

https://vjudge.net/problem/POJ-2485#author=windsky1

2.问题描述

   A国没有高速公路,因此A国的交通很困难。政府意识到了这个问题并且计划建造一些高速公路,以至于可以在不离开高速公路的情况下在任意两座城镇之间行驶。

   A国的城镇编号为1到N, 每条高速公路连接这两个城镇,所有高速公路都可以在两个方向上使用。高速公路可以自由的相互交叉。

   A国政府希望尽量减少最长高速公路的建设时间(使建设的最长的高速公路最短),但是他们要保证每个城镇都可以通过高速公路到达任意一座城镇。

输入样例

1

3
0 990 692
990 0 179
692 179 0

输出样例

692

3.解题思路

给定一个邻接矩阵,要求求出构建出的最短路中的最长路径

一开始一直求成最短路长度一直错误,后来看了题解才明白是最短路中的最长路径。。。

可以使用克鲁斯卡尔算法或者prim算法

4.算法实现源代码

#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<algorithm>
#include<cstdio>
using namespace std;

const int maxn=500+10;
int map[maxn][maxn];
int visit[maxn];
int lowdis[maxn];
int n;

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                int a;
                scanf("%d",&a);
                if(a==0)
                {
                    map[i][j]=1e9;
                }
                else
                {
                    map[i][j]=a;
                }
            }
        }
        memset(visit,0,sizeof(visit));
        for(int i=1;i<=n;i++)
        {
            lowdis[i]=map[1][i];
        }
        int maxdis=0,min,next;
        visit[1]=1;
        for(int i=1;i<n;i++)
        {
            min=1e9;
            for(int j=1;j<=n;j++)
            {
                if(!visit[j]&&lowdis[j]<min)
                {
                    min=lowdis[j];
                    next=j;
                }
            }
            visit[next]=1;
            maxdis=maxdis>min?maxdis:min;
            for(int j=1;j<=n;j++)
            {
                if(!visit[j]&&lowdis[j]>map[next][j])
                {
                    lowdis[j]=map[next][j];
                }
            }
        }
        cout<<maxdis<<endl;
    }
}

 

poj2485

标签:最长路   net   namespace   visit   eof   map   algo   min   amp   

原文地址:https://www.cnblogs.com/KasenBob/p/11448911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!