poj2485

Posted kasenbob

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj2485相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

POJ2485 Highways (最小生成树)

poj2485prim

poj2485kruskal

poj2485

POJ2485 Highways

POJ 2485 Highways (最小生成树)