还是畅通工程

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 42994    Accepted Submission(s): 19603

Problem Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
3 1 2 1 1 3 2 2 3 4 4 1 2 1 1 3 4 1 4 1 2 3 3 2 4 2 3 4 5 0
Sample Output
3 5
#include<queue>
#include<stack>
#include<math.h>
#include<stdio.h>
#include<numeric>//STL数值算法头文件
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<functional>//模板类头文件
using namespace std;const int maxn=10000+10;int par[maxn];struct node
{int u,v,w;
} edge[maxn];int makeset(int n)
{for(int i=1; i<=n; i++)par[i]=i;
}int cmp(node &a,node &b)
{return a.w<b.w;
}int find(int x)
{if(x!=par[x]) x=find(par[x]);return par[x];
}int main()
{int n,cnt,i;while(scanf("%d",&n)&&n){makeset(n);memset(edge,0,sizeof(edge));int len=n*(n-1)/2;for(i=0; i<len; i++)scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w);sort(edge,edge+len,cmp);for(cnt=i=0; i<len; i++){int x=find(edge[i].u);int y=find(edge[i].v);if(x!=y){par[x]=y;cnt+=edge[i].w;}}printf("%d\n",cnt);}return 0;
}

转载于:https://www.cnblogs.com/nyist-xsk/p/7264873.html

克鲁斯卡尔(并查集)hdu 1233相关推荐

  1. HDOJ 1233 (克鲁斯卡尔+并查集)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  2. Junk-Mail Filter_并查集(hdu 2473)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 Problem Description Recognizing junk mails is a ...

  3. 带权并查集 HDU - 3047

    题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的. 思路: 带权并查集模板. #include<stdio.h&g ...

  4. hdu 1233 还是畅通工程 Kruskal 最小生成树 并查集

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1233 模板题,kruskal求最小生成树. 并查集是个好东西啊  就是注意一点 输入边的信息时,角标 ...

  5. 牛客 - 牛半仙的妹子图(并查集+bitset/克鲁斯卡尔重构树+主席树)

    题目链接:点击查看 题目大意:给出一个由 n 个点和 m 条边组成的连通图,每个点都有一种颜色,每条边都有一个权值,现在规定一个起点 st,再给出 q 次询问,每次询问给出区间 [ l , r ] , ...

  6. 还是畅通工程(克鲁斯卡尔算法+并查集)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  7. 并查集的一些个人观点 以及克鲁斯卡尔算法的详解

    先抛出个问题,什么是并查集,它有什么用? 看我这篇Blog的人想必就为了弄明白,下面写出我个人的一些观点. 1 什么是并查集,以及并查集要完成的目标. 举个例子,通火车要修路,已经修了一部分了,但各个 ...

  8. 暑期集训5:并查集 线段树 练习题G: HDU - 1754

    2018学校暑期集训第五天--并查集 线段树 练习题G  --   HDU - 1754 I Hate It 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让 ...

  9. 暑期集训5:并查集 线段树 练习题F:  HDU - 1166 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题F  --   HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...

  10. 暑期集训5:并查集 线段树 练习题B: HDU - 1213 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题B  --   HDU - 1213 How Many Tables Today is Ignatius' birthday. He invites ...

最新文章

  1. mysql innodb 数据复制_快速将InnoDB表复制到另一个实例
  2. .NET Core 3.0:System.Data的变化
  3. android 浮动按钮拖拽,小程序拖拽浮动按钮
  4. ios与android指纹识别,iOS开发swift -- 指纹识别
  5. 2020中国民营企业500强调研分析报告
  6. 62个电脑常用快捷键大全,一次分享,果断收藏!
  7. 呆萌的图模型学习——使用networkx计算node2vec,得到节点与边的embedding(三)
  8. 淘宝双十一火爆下的暗礁?
  9. GAN里面的Kullback-Leibler Divergence和Jensen–Shannon Divergence
  10. 在“动物杂交:新视野”中快速赚钱的9种方法
  11. jQuery诞生记-原理与机制
  12. Java swing简易浏览器(其二)前进后退与收藏夹实现
  13. Windows 8.1 更新错误 0x80073712 解决办法
  14. 4.8 51单片机-PCF8591(ADC/DAC)转换芯片
  15. List和set集合:交集、差集、合集的区别retainAll,removeAll、addAll
  16. 上海应届生落户政策计算机水平,上海直接可落户的应届生及2021具体评分标准...
  17. C# 文件操作类大全(转摘)
  18. MTK-手机锁等相关密码配置
  19. 个人品牌 比漂亮简历更重要
  20. ghost64怎么装linux,使用ghost对linux进行系统备份

热门文章

  1. 【知识库专访】亲加CTO郝飞:直播技术架构解密与优化之道
  2. Google Protocol Buffer 的使用和原理
  3. Tomcat服务在Eclipse中能够正常启动,但页面出现404错误的解决方法
  4. MQ日常维护操作手册
  5. 【校园先行者】曲径通幽,我用阿里云部署的个人网站及挂机实践分享
  6. python实体类dict to object
  7. ​关于虚拟机迁移文档(p2v v2v
  8. 【原创】RabbitMQ 之 Access Control(翻译)
  9. windows下安装多个tomcat服务
  10. 怎么去除桌面图标显示快捷方式字样?