HDU 1232 - 畅通工程
畅通工程
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。
注意:两个城市之间可以有多条道路相通,也就是说
3 3
1 2
1 2
2 1
这种输入也是合法的
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最少还需要建设的道路数目。
Sample Input
4 2
1 3
4 3
3 3
1 2
1 3
2 3
5 2
1 2
3 5
999 0
0
Sample Output
1
0
2
998
解题思路与UVA 10583 - Ubiquitous Religions类似,在10583 判断出最终有多少个集合的基础上减1,就是需要修建的路总数。
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
const int N = 1000;
int fa[N], deep[N];void init()
{memset(fa, -1, sizeof(fa));memset(deep, 0, sizeof(deep));
}int find(int x)
{if (fa[x] == -1) return x;return fa[x] = find(fa[x]);
}void unite(int x, int y)
{x = find(x), y = find(y);if (x == y) return;if (deep[x]<deep[y])fa[x] = y;else{fa[y] = x;if (deep[x] == deep[y])deep[x]++;}
}bool same(int x, int y)
{return find(x) == find(y);
}int main()
{int n, m; //n个城镇 m条路int x, y; //城镇x 城镇yint fx, fy;//城镇x y的父节点while (cin >> n >> m&&n != 0) {init();//初始化while (m--) {cin >> x >> y;fx = find(x);fy = find(y);if (fx != fy){unite(fx, fy);n--;//集合数-1}}n--;//最后的总集合数-1就是需要修建的路if (m==0) //如果m=0 则需要修建n-1条路{n -= n;cout << n << endl;}else cout << n << endl;}return 0;
}
转载于:https://www.cnblogs.com/aizc/p/7576274.html
HDU 1232 - 畅通工程相关推荐
- HDU 1232畅通工程
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- [ACM] hdu 1232 畅通工程(并查集)
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...
- hdu 1232 畅通工程
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...
- HDU - 1232 畅通工程 【连通块】
Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接 ...
- HDU 1232 -畅通工程(并查集)
题目 http://acm.hdu.edu.cn/showproblem.php?pid=1232 代码 #include <iostream> #include <algorith ...
- hdu 1232 畅通工程 最小生成树 并查集
1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...
- 并查集 HDOJ 1232 畅通工程
题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- 杭电1232 畅通工程
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...
最新文章
- 报名 | “AI Time”系列论道知识图谱:知识赋能智能与智能产生知识
- Redis-Session无状态会话技术
- 天地图专题一:加载天地图
- Druid:数据库连接池实现技术 1
- Linux创建用户、用户组 及 删除
- nginx 负载均衡 最初级版本
- Navicat的使用,连表查询,python代码操作sql语句
- scrollview滑动到某区域执行某种方法
- android动画实现单摆效果
- mac ae 汉化
- spring cloud bus
- 相机标定和双目相机标定标定原理推导及效果展示
- 直流马达驱动_ADC_PWM加减速(STM32F4 CubeMX)
- webshell后门检测原理
- 教你在一分钟之内,将100页Word转换为PPT,简直太厉害了
- Vue入门:(v-for v-model)
- websocketpp wss
- 写一个WFP驱动,拦截网络
- ACM-ICPC 2018 南京赛区网络预赛 J AC Challenge (状压dp)
- OpenGL/OpenGL ES入门:渲染YUV数据实践
热门文章
- Spring学习总结一
- ModbusPoll及ModbusSlave安装及使用指南
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- PyTorch基础(七)----- torch.nn.AdaptiveAvgPool2d()方法
- S5PV210开发 -- 通过 DNW、fastboot 烧写
- 【译】Understanding Batch Normalization with Examples in Numpy and Tensorflow with Interactive Code
- Android开源框架源码鉴赏:Fresco
- 全面解析多种区块链隐私保护解决方案
- Hyperledger Fabric 1.0 实例简析 第一课 network_setup.sh分析
- JZOJ 3852. 【NOIP2014八校联考第2场第2试9.28】单词接龙(words)