luogu P1536 村村通
题目描述
某市调查城镇交通状况,得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。市政府“村村通工程”的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要相互之间可达即可)。请你计算出最少还需要建设多少条道路?
输入输出格式
输入格式:
每个输入文件包含若干组测试测试数据,每组测试数据的第一行给出两个用空格隔开的正整数,分别是城镇数目N(N<1000)和道路数目M;随后的M行对应M条道路,每行给出一对用空格隔开的正整数,分别是该条道路直接相连的两个城镇的编号。简单起见,城镇从1到N编号。
注意:两个城市间可以有多条道路相通。例如:
3 3 1 2 1 2 2 1 这组数据也是合法的。当N为0时,输入结束。
输出格式:
对于每组数据,对应一行一个整数。表示最少还需要建设的道路数目。
思路:并查集(把所有的村庄看作一个个点,用道路连接起来就成了一棵棵树,最后数一数有多少棵树就行了,要求的道路就是树的数目 - 1)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int fa[maxn];
int vis[maxn];
int find(int x) {return x == fa[x] ? x : fa[x] = find(fa[x]);
}int main() {int n, m;int u, v;while(cin >> n && n) {cin >> m;for(int i = 1; i <= n; i++) { //初始化集合与标记 fa[i] = i;vis[i] = 0;}for (int i = 1; i <= m; i++) {cin >> u >> v;fa[find(u)] = find(v); // 合并集合 }int ans = 0;for(int i = 1; i <= n; i++) { //查找一共有多少个集合 find(i);if(vis[fa[i]] == 0) {ans++;vis[fa[i]] = 1;}}cout << ans - 1 << endl; //答案: 一共有多少集合 - 1 }return 0;
}
luogu P1536 村村通相关推荐
- [luogu p1536] 村村通
传送门 村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都可以实现交通(但不一 ...
- [LUOGU] P1536 村村通
题目描述某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府"村村通工程"的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只 ...
- 洛谷P1536 村村通【并查集】
题目链接:P1536 村村通 程序说明: n个集合需要用n - 1条线连接起来,因此合并完集合后,循环遍历所有点,记录集合的总数,减一则为正确答案 代码如下: #include <iostrea ...
- P1536 村村通(洛谷)
P1536 村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府"村村通工程"的目标是使全市任何两个城镇间都可以实现交通(但不一 ...
- 洛谷—— P1536 村村通
P1536 村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府"村村通工程"的目标是使全市任何两个城镇间都可以实现交通(但不一 ...
- 洛谷:P1536 村村通
题目出处 洛谷:P1536 村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都 ...
- P1536 村村通(并查集)
村村通 - 洛谷https://www.luogu.com.cn/problem/P1536 #include <iostream> #include <cstdio> #in ...
- P1536 村村通 洛谷
https://www.luogu.org/problem/show?pid=1536 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府"村村 ...
- 洛谷P1536 村村通
链接:P1536 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府"村村通工程"的目标是使全市任何两个城镇间都可以实现交通(但不一定 ...
最新文章
- 如果你的云服务商倒闭该怎么办?
- C语言 学生宿舍管理系统
- 活动延期通知 | 7.31 阿里云 Serverless Developer Meetup 杭州站本周六见!
- Maven依赖项的适用范围scope
- 确保对象的唯一性——单例模式
- Linux部署项目的步骤
- (35)FPGA打两拍、打三拍设计(第7天)
- No Javascript on this page
- php数组排序语言,php数组排序函数有哪些
- Hibernate之分页查询
- 中国计量大学matlab,计量经济学及matlab.pdf
- 谷歌 发布android 8,2017谷歌大会正式发布Android 8.0!
- 软考高级信息系统项目管理师好考吗?
- 实力认证!Coremail连续9次入围安全牛《中国网络安全行业全景图》
- stm32中的“hello world”
- flash ActionScript快速入门(全部章节)
- win10设置让所有文件夹查看方式都是详细信息
- 安全总结(一)--一键彻底关闭Win10自带Windows Defender杀毒软件
- python特征提取方法_大师兄的Python机器学习笔记:特征提取
- 白鹭egret配合protobufjs的使用