codevs 2627 村村通
题目描述 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 村村通相关推荐
- Codevs 2627 村村通
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到 ...
- 08-图7 公路村村通
08-图7 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤ ...
- SDUT-3362 数据结构实验之图论六:村村通公路
数据结构实验之图论六:村村通公路 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descripti ...
- 08-图7 公路村村通 (30 分)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤)和候选道路数目M(≤):随后的M行 ...
- 08-图7 公路村村通 (30 分
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤)和候选道路数目M(≤):随后的M行 ...
- 7-5 公路村村通 (30 分)(C语言实现)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...
- 7-1 公路村村通 (30 分)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...
- 并查集——村村通(洛谷 P1536)
题目选自洛谷P1536 并查集的变相考察类型的题目 先处理每一条存在的边,即把每条存在的边所连接的两个结点用并查集合并起来. 然后通过记录不同的代表元个数,就可以知道有多少个集合,即有多少个连通块了. ...
- 【codevs2627】村村通
problem solution codes /* 作者:gwj1139177410 题目:p2627 村村通 */ //Kruskal #include<iostream> #inclu ...
最新文章
- linux下产生core文件以及不产生core文件的条件
- ajax操作的链式写法
- Alpha冲刺博客集
- 本地存储cookie和localStorage区别特点
- Hibernate陷阱
- IDEA——常用基础设置
- javascript小技巧 JavaScript[对象.属性]集锦 [zz]
- 华为发布企业服务云化转型战略 未来5年投资5亿美金建设服务能力(2017年09月06日)
- LeetCode 78. Subsets
- 用sysprep制作可以导入MDT的镜像
- mysql数据库基操,都坐下!
- LCD1602字符串显示(STM32F103)
- 基于ARM的嵌入式Linux应用程序开发
- adb命令刷入kingroot_一加5工具箱:一加5玩机神器|刷机工具箱|解锁上锁|刷机root|解密data,一键Xposed...
- 计算机快捷键任务管理器,打开电脑任务管理器快捷键是什么
- 一般纳税人税额计算_一般纳税人应纳税额如何计算?
- 私域运营是不是就是社群运营?
- 快速图像视频标注软件:SuperAnnotate Desktop
- nodeJS与npx之间的三两事
- Zookeeper 集群模式搭建