最小生成树--Agri-Net(poj 1258);

这篇博客介绍了如何使用克鲁斯卡尔算法和普利姆算法来解决Agri-Net问题,即在保证农场间距离不超过100000的条件下构建最小生成树。文章提供了两种不同的算法实现方法。
农业网
时限:1000MS 内存限制:10000K
提交材料共计: 62643 接受: 25922
描述


农夫约翰被选为他的镇长!他的竞选承诺之一是将互联网连接到该地区的所有农场。他当然需要你的帮助。
农场主约翰为他的农场订购了一条高速连接,并将与其他农民分享他的连接。为了降低成本,他想要铺设最少的光纤来连接他的农场和所有其他农场。
给出连接每一对农场需要多少纤维的清单,你必须找到将它们连接在一起所需的最小纤维数量。每个农场必须连接到其他农场,以便一个包可以从任何一个农场流到任何其他农场。

两个农场之间的距离不超过100000。


输入
输入包括几个案例。对于每一种情况,第一行包含农场的数量,n(3<=n<=100)。下面的行包含在矩阵,其中每个元素显示从农场到另一个农场的距离。从逻辑上讲,它们是n个空间分离整数的n行.。在物理上,它们的长度限制为80个字符,因此有些行继续在其他行上。当然,对角线是0,因为从农场i到它本身的距离对于这个问题并不有趣。
输出
对于每个情况,输出一个整数长度,这是连接整个农场集所需的最小纤维长度之和。
样本输入


4
0  4  9 21
4  0  8 17
9  8  0 16
21 17 16 0
样本输出

28


方法一、克鲁斯卡尔算法实现:


#include <iostream>
#include <cstdio>
#define NUM 105
using namespace std;
int N;//农场的数量
int Graph[NUM][NUM];
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值