码迷,mamicode.com
首页 > Web开发 > 详细

POJ1258 Agri-Net【最小生成树】

时间:2017-10-10 21:43:46      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:nbsp   oid   max   span   inf   距离   amp   col   define   

题意:

有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离。

思路:

又是一个最小生成树,因为给出了一个二维矩阵代表他们的距离,直接算prim就行了。

代码:

#include <iostream>
using namespace std;

#define maxn 105
#define inf 0x3f3f3f3f

int map[maxn][maxn],n;

void Prim()
{
    int i,j,d[maxn],vis[maxn],mi,v;
    for(i=1;i<=n;i++)
    {
        d[i]=map[1][i];
        vis[i]=0;
    }
    for(i=1;i<=n;i++)
    {
        mi=inf;
        for(j=1;j<=n;j++)
            if(!vis[j] && d[j]<mi)
            {
                mi=d[j];
                v=j;
            }
        vis[v]=1;
        for(j=1;j<=n;j++)
            if(!vis[j] && d[j]>map[v][j])
                d[j]=map[v][j];
    }
    for(d[0]=0,i=1;i<=n;i++) d[0]+=d[i];
    cout<<d[0]<<endl;
}

int main()
{
    int i,j;
    while(cin>>n)
    {
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                cin>>map[i][j];
        Prim();
    }
    return 0;
}

 

POJ1258 Agri-Net【最小生成树】

标签:nbsp   oid   max   span   inf   距离   amp   col   define   

原文地址:http://www.cnblogs.com/darklights/p/7647610.html

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