题目描述 Description
农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。

约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。

你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000

输入描述 Input Description
第一行: 农场的个数,N(3<=N<=100)。
第二行,某些行会紧接着另一些行。当然,对角线将会是0,因为不会有线路从第i个农..结尾: 后来的行包含了一个N*N的矩阵,表示每个农场之间的距离。理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们限制在80个字符,因此场到它本身。

输出描述 Output Description
只有一个输出,其中包含连接到每个农场的光纤的最小长度。

样例输入 Sample Input
4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0

样例输出 Sample Output
28

数据范围及提示 Data Size & Hint
暂时无范围。

//求最小生成树的长度
#include<iostream>
#include<cstdio>
#include<algorithm>
#define MAX_V 16000
using namespace std;
int tot,n,fa[MAX_V];struct edge{int from,to,cost;
}es[MAX_V<<1];bool cmp(edge a,edge b)
{return a.cost<b.cost;
}int find(int x)
{if(x==fa[x])return x;else return fa[x]=find(fa[x]);
}
bool judge(int x,int y)
{int root1,root2;root1=find(x);root2=find(y);if(root1==root2) return false;else {fa[root2]=root1;return true;}
}
void kruskal()
{int ltotal=0,flag=0,sum=0;for(int i=1;i<=n;i++)fa[i]=i;sort(es+1,es+tot+1,cmp);for(int i=1;i<=tot;i++)//tot表示几条边 {if(judge(es[i].from ,es[i].to )){ltotal++;//记录边的总数 sum+=es[i].cost;        } if(ltotal==n-1){printf("%d\n",sum);break;}}
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){int x;scanf("%d",&x);if(x!=0){es[++tot].from=i;es[tot].to=j;es[tot].cost=x;}}kruskal();
}

codevs 2627 村村通相关推荐

  1. Codevs 2627 村村通

    时间限制: 1 s   空间限制: 32000 KB  题目等级 : 黄金 Gold  题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到 ...

  2. 08-图7 公路村村通

    08-图7 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤ ...

  3. SDUT-3362 数据结构实验之图论六:村村通公路

    数据结构实验之图论六:村村通公路 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descripti ...

  4. 08-图7 公路村村通 (30 分)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤)和候选道路数目M(≤):随后的M行 ...

  5. 08-图7 公路村村通 (30 分

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤)和候选道路数目M(≤):随后的M行 ...

  6. 7-5 公路村村通 (30 分)(C语言实现)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...

  7. 7-1 公路村村通 (30 分)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...

  8. 并查集——村村通(洛谷 P1536)

    题目选自洛谷P1536 并查集的变相考察类型的题目 先处理每一条存在的边,即把每条存在的边所连接的两个结点用并查集合并起来. 然后通过记录不同的代表元个数,就可以知道有多少个集合,即有多少个连通块了. ...

  9. 【codevs2627】村村通

    problem solution codes /* 作者:gwj1139177410 题目:p2627 村村通 */ //Kruskal #include<iostream> #inclu ...

最新文章

  1. linux下产生core文件以及不产生core文件的条件
  2. ajax操作的链式写法
  3. Alpha冲刺博客集
  4. 本地存储cookie和localStorage区别特点
  5. Hibernate陷阱
  6. IDEA——常用基础设置
  7. javascript小技巧 JavaScript[对象.属性]集锦 [zz]
  8. 华为发布企业服务云化转型战略 未来5年投资5亿美金建设服务能力(2017年09月06日)
  9. LeetCode 78. Subsets
  10. 用sysprep制作可以导入MDT的镜像
  11. mysql数据库基操,都坐下!
  12. LCD1602字符串显示(STM32F103)
  13. 基于ARM的嵌入式Linux应用程序开发
  14. adb命令刷入kingroot_一加5工具箱:一加5玩机神器|刷机工具箱|解锁上锁|刷机root|解密data,一键Xposed...
  15. 计算机快捷键任务管理器,打开电脑任务管理器快捷键是什么
  16. 一般纳税人税额计算_一般纳税人应纳税额如何计算?
  17. 私域运营是不是就是社群运营?
  18. 快速图像视频标注软件:SuperAnnotate Desktop
  19. nodeJS与npx之间的三两事
  20. Zookeeper 集群模式搭建

热门文章

  1. 李永乐(八)齐次线性方程组——笔记
  2. 关于业务主键和逻辑主键
  3. H.264分隔符AUD误用导致iOS设备无法播放H.265视频的问题解决
  4. Rmarkdown的PDF文件插入本地图片
  5. MapReduce--6--求共同好友
  6. 【ics-05 | mfw】攻防世界CTF题WP
  7. Unity3D 内存管理
  8. 手机上怎么压缩html文件夹,iphone手机怎么压缩文件 iphone自带文件压缩功能操作方法分享...
  9. C语言队列函数中pop,C语言_队列的基本操作
  10. android资源的诡异问题