博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1078 最小生成树
阅读量:5020 次
发布时间:2019-06-12

本文共 1763 字,大约阅读时间需要 5 分钟。

链接:http://codevs.cn/problem/1078/

题目描述 
Description

农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了使花费最少,他想铺设最短的光纤去连接所有的农场。 你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。 每两个农场间的距离不会超过100000

输入描述 
Input Description

第一行: 农场的个数,N(3<=N<=100)。

第二行..结尾: 接下来的行包含了一个N*N的矩阵,表示每个农场之间的距离。理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们每行限制在80个字符以内,因此,某些行会紧接着另一些行。当然,对角线将会是0,因为线路从第i个农场到它本身的距离在本题中没有意义。

输出描述 
Output Description

只有一个输出,是连接到每个农场的光纤的最小长度和。

样例输入 
Sample Input

4

0  4  9 21

4  0  8 17

9  8  0 16

21 17 16  0

样例输出 
Sample Output

28

算法分析:

这道题是典型的最小生成树模板题。

 prim算法:

1 #include 
2 #include
3 4 //Prim算法求最小生成树 5 const int maxn=101; //顶点个数最大值 6 int Prim(int n,int dist[maxn],int map[maxn][maxn],int pre[maxn]) 7 //n个顶点,dist[i]表示向外延伸的最短边长,map记录图信息,pre记录连接信息 8 { 9 int total=0;10 int i,j,k;11 int min;12 bool p[maxn];//p[i]=true表示顶点i属于集合Va,反之属于集合Vb。13 14 for(i=2;i<=n;i++)//初始化15 {16 p[i]=false;17 dist[i]=map[1][i];18 pre[i]=1;19 }20 dist[1]=0; //从顶点1开始,把顶点1放入Va集合21 p[1]=true;22 23 for(i=1;i

 

 下面是另一个版本的prim算法代码:

1 #include
2 #include
3 #define MAXV 100 4 #define INF 100005 5 void prim(int **edges,int n,int v); 6 int main(int argc, char *argv[]) 7 { 8 int N,**edges; 9 int i,j;10 scanf("%d",&N);11 edges=(int **)malloc(sizeof(int*)*N);12 for(i=0;i
View Code

 

下面是kruskal算法实现的代码:

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 //并查集 7 const int maxn=1010;//最大顶点个数 8 int UFSTree[maxn]; 9 void initUFSTree()//初始化并查集的数组10 {11 for(int i=0;i
View Code

 

  

 

 

转载于:https://www.cnblogs.com/huashanqingzhu/p/7788050.html

你可能感兴趣的文章
机器学习好网站
查看>>
python 中的 sys , os 模块用法总结
查看>>
解题:国家集训队 Middle
查看>>
响应者链
查看>>
指针从函数内部带回返回值
查看>>
在使用webView播放flash或视频文件时无法关闭声音的问题
查看>>
redhat 7 源码安装 mysql5.5.49
查看>>
CCP浅谈
查看>>
NAT虚拟网络配置
查看>>
c#部分---需要实例化的内容;
查看>>
销售类
查看>>
技术项目,问题
查看>>
线程池总结
查看>>
Learning to rank (software, datasets)
查看>>
git常见问题
查看>>
.NETFramework:template
查看>>
HM16.0之帧内模式——xCheckRDCostIntra()函数
查看>>
Jmeter性能测试 入门
查看>>
安卓动画有哪几种?他们的区别?
查看>>
Nodejs学习总结 -Express入门(一)
查看>>