HDoj-1863-畅通project-并查集
畅通project
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17006 Accepted Submission(s): 7140
Problem Description
省政府“畅通project”的目标是使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连,
仅仅要能间接通过公路可达就可以)。
经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。
现请你编敲代码。计算出全省畅通须要的最低成本。
Input
測试输入包括若干測试用例。每一个測试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N
行相应村庄间道路的成本,每行给出一对正整数。各自是两个村庄的编号。以及此两村庄间道路的成本(也是正整数)。
为简单起见,村庄从1到M编号。
当N为0时,所有输入结束。对应的结果不要输出。
Output
对每一个測试用例,在1行里输出全省畅通须要的最低成本。
若统计数据不足以保证畅通,则输出“?
”。
Sample Input
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
Sample Output
3
?
#include <stdio.h>
#include<string.h>
#include <algorithm>
using namespace std;
struct Road
{
int c1, c2, cost;
};
Road road[110]; bool cmp(Road a,Road b)
{
return a.cost<b.cost;
}
int city[110]; int find(int a)
{
int r=a;
while(city[r]!=r)
r=city[r];
return r;
}
bool merge(int x, int y)
{
int fx,fy;
fx = find(x);
fy = find(y);
if(fx == fy) return 0;
else if(fx < fy)
city[fy] = fx;
else
city[fx] = fy;
return 1;
} int main()
{
int n, m;
while(scanf("%d %d", &m, &n) && m)
{
int i;
for(i=1;i<=n;i++)
{
city[i]=i;
}
for(int i=0; i<m; ++i)
scanf("%d %d %d", &road[i].c1, &road[i].c2, &road[i].cost);
sort(road, road+m,cmp);
int sum = 0, count = 0;
for(int i=0; i<m; i++)
{
if(merge(road[i].c1, road[i].c2))
{
count ++;
sum += road[i].cost;
}
if(count == n-1)
break;
}
if(count == n-1)
printf("%d\n", sum);
else
printf("? \n");
}
return 0;
}
HDoj-1863-畅通project-并查集的更多相关文章
- hdu 1863 畅通工程 (并查集+最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others) M ...
- HDU1232 畅通project 并查集
这道题跟HDU 1213 How Many Tables 并查集很接近,都是赤裸裸的并查集的题. 思路:如果还须要建n-1条路.每并一次就自减1. 參考代码: #include<stdio.h& ...
- hdu 1863 畅通工程 (并查集 、 kruskal)
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- Kruskal HDOJ 1863 畅通工程
题目传送门 /* 此题为:HDOJ 1233 + HDOJ 1232 */ #include <cstdio> #include <algorithm> #include &l ...
- <hdu - 1863> 畅通工程 并查集和最小生成树问题
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 Problem Description: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以 ...
- HDU1232 畅通工程 并查集
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- ACM: 继续畅通工程-并查集-最小生成树-解题报告
继续畅通工程 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Descri ...
- ACM: 畅通工程-并查集-解题报告
畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查城镇交通状况 ...
- hdoj 1863 畅通工程
并查集+最小生成树 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- B - 畅通工程(并查集)
对并查集理解之后就可以做这种题了,虽说这种题做的不多,这道题做过才这么快搞定,可是还是挺happy滴,加油 Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接 ...
随机推荐
- 2 Spring4 之Bean的配置
Spring4 之Bean的配置 1 IOC & DI 概述 IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源 ...
- 【BZOJ】2730: [HNOI2012]矿场搭建【Tarjan找割点】【分联通块割点个数】
2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3230 Solved: 1540[Submit][Stat ...
- 重庆市队选拔 CQOI2015 解题报告
文章链接:http://www.cnblogs.com/Asm-Definer/p/4434601.html 题目链接:http://pan.baidu.com/s/1mgxIKli 官方数据:htt ...
- C#高级编程9-目录
C#高级编程 ===================================================== .NET体系结构 核心C# 对象与类型 继承 泛型 数组 运算符和类型强制转换 ...
- linux_jdk_mysql_tomcat
1 linux下安装jdk的步骤: 0. 查找原有的jdk: rpm -qa | grep java 删除原有的jdk: rpm -e --nodeps java-1.7.0-openjdk-1.7. ...
- CentOS6安装redmine
Author: JinDate: 20140827System: CentOS release 6.5 (Final) 参考:http://www.redmine.org/projects/redmi ...
- 微信小程序 scroll-view隐藏横向滚动条
::-webkit-scrollbar { width: 0; height: 0; color: transparent; }
- The YubiKey NEO -- Smartcard features
Smartcard features on the YubiKey NEO YubiKeys are a line of small and low-cost hardware security to ...
- DHT(Distributed Hash Table,分布式哈希表)
DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络. DHT全称叫分布式哈希表(Distributed Hash Table),是 ...
- 将数据处理逻辑集中到一处进行管理,逐步实现真正有效的 MVC 分层结构
将数据处理逻辑集中到一处进行管理,逐步实现真正有效的 MVC 分层结构.