HDU--1863--畅通工程--并查集
畅通工程
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12253 Accepted Submission(s): 5001
行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。
#include <iostream>
#include <cstdlib>
using namespace std;
int father[],k;
struct ssss
{
int a,b,c;
}ss[];
int cmp(const void *a,const void *b) //按照从小到大排序排序
{
return (*(ssss *)a).c-(*(ssss *)b).c;
}
int Find(int a) //找到a的祖先并路径上成员全部指向祖先
{
return a==father[a]?a:father[a]=Find(father[a]);
}
void Union(int a,int b,int i)
{
if(Find(a)!=Find(b))
{
father[Find(a)]=Find(b);k+=ss[i].c; //a家族并入b家族且k加上相应的值
}
}
int main (void)
{
int n,m,i,j;
while(cin>>n>>m&&n)
{
for(i=;i<=m;i++)
father[i]=i; //初始化
for(i=;i<n;i++)
cin>>ss[i].a>>ss[i].b>>ss[i].c;
qsort(ss,n,sizeof(ss[]),cmp);
for(i=k=;i<n;i++)
Union(ss[i].a,ss[i].b,i); //并一起的并起来
for(i=,j=;i<=m;i++)
{
if(j>)break; //如果出现两个祖先,也就是没有全部联通
if(father[i]==i)j++; //统计祖先个数即家族个数
}
if(j>)cout<<"?"<<endl;
else cout<<k<<endl;
}
return ;
}
AV代码
HDU--1863--畅通工程--并查集的更多相关文章
- hdu 1863 畅通工程 (并查集+最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others) M ...
- hdu 1863 畅通工程 (并查集 、 kruskal)
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- <hdu - 1863> 畅通工程 并查集和最小生成树问题
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 Problem Description: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以 ...
- HDU - 1232 畅通工程-并查集模板
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...
- <hdu - 1232> 畅通工程 并查集问题 (注意中的细节)
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 结题思路:因为题目是汉语的,那我就不解释题意了,要求的是最少建设的道路,我们可以用并查集来做这 ...
- HDU 1232 畅通工程(并查集)
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Des ...
- HDU 1232 (畅通工程) 并查集经典模板题
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...
- hdu 1863 畅通工程(Kruskal+并查集)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1863 畅通工程 (并查集)
原题链接:畅通工程 题目分析:典型的并查集模版题,这里就不详细叙述了.对算法本身不太了解的可以参考这篇文章:并查集算法详解 代码如下: #include <iostream> #inclu ...
- hdu 1233 还是畅通工程 并查集or最小生成树
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路 ...
随机推荐
- IMPORT FROM 表数据导入
Syntax IMPORT FROM [<file_type>] <file_path> [INTO <table_name>] [WITH <import_ ...
- consul模板的说明2
保证模板的正常执行 使用||true $ consul-template -template "in.ctmpl:out.file:service nginx restart || true ...
- [poj1679]The Unique MST(最小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28207 Accepted: 10073 ...
- jquery ajax的error错误信息
项目开发中ajax的异常处理起来算是比较头疼的,因为是异步请求,所以即使ajax异常程序依然会继续执行,导致找ajax的异常比较麻烦. 今天处理ajax异常时搜到一篇文章,提到error可以返回aja ...
- django框架代码基础
urls.py 导入相对应的模块from django.conf.urls import url,includefrom django.contrib import adminfrom son1.vi ...
- JQuery_表单选择器
表单作为HTML 中一种特殊的元素,操作方法较为多样性和特殊性 开发者不但可以使用之前的常规选择器或过滤器,也可以使用jQuery 为表单专门提供的选择器和过滤器来准确的定位表单元素. 一.常规选择器 ...
- js操作新添加的DOM的问题
$(function(){ $("body").on("click", '.abc', function(){ alert('ok'); }); $('.b') ...
- Spring 在多线程中,bean的注入问题
最近碰到了一个问题,使用SSM框架,在Service层需要另开一个线程,这个线程专门用来做一些操作,并将结果写入数据库中.但是在线程中使用@Resource或者@Autowired注入全部为NULL, ...
- 上标、下标~不常用的 html 标签
<sup>上标 <sub>下标 <small>小号字 <del> 删除线 ======> 对应的 js stringObj.sup() 上标 s ...
- 不刷新页面获取HTML进行显示
$.ajax({ url: "请求地址", dataType: "text", type: "GET" ...