P2839 畅通工程
P2839 畅通工程
题目描述
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
输入输出格式
输入格式:
第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M
随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号
注意:两个城市连接多条公路是合法的
输出格式:
至少还需建立多少条路
输入输出样例
3 3 1 2 1 3 2 3
0
3 3 1 2 1 2 2 1
1
说明
对于30%的数据,1<=N<=10
对于70%的数据,1<=N<=200
对于100%的数据,1<=N<=1000,1<=M<=1000
跟上一个题似乎是一样的
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #define N 5100 using namespace std; int fa[N]; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f; } int find(int x) {if(x==fa[x]) return x;fa[x]=find(fa[x]);return fa[x]; } int main() {int n,m,x,y,fx,fy,ans=0;n=read(),m=read();for(int i=1;i<=n;i++) fa[i]=i;for(int i=1;i<=m;i++){x=read(),y=read();fx=find(x),fy=find(y);if(fa[fx]==fa[fy]) continue;fa[fx]=fy;}for(int i=1;i<=n;i++)if(fa[i]==i) ans++;printf("%d",ans-1);return 0; }
转载于:https://www.cnblogs.com/z360/p/7436484.html
P2839 畅通工程相关推荐
- [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...
- 并查集 HDOJ 1232 畅通工程
题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...
- 畅通工程//最小生成树prim
题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 【1863】畅通工程 (HDU)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- 畅通工程 HDU - 1233
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- Kruskal HDOJ 1233 还是畅通工程
题目传送门 1 /* 2 最小生成树之kruskal算法--并查集(数据结构)实现 3 建立一个结构体,记录两点和它们的距离,依照距离升序排序 4 不连通就累加距离,即为最小生成树的长度 5 */ 6 ...
- hdu1879 继续畅通工程 最小生成树
继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...
- 题目1028:继续畅通工程
/********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
最新文章
- 车辆姿态相关的一些传感器
- Java 洛谷 P1319 压缩技术
- OS_FLAG.C(3)
- 你如何去管理你的团队?
- 有用的Ant构建标签
- c iostream.源码_通达信《K线上画趋势线预警》精选指标(附源码)
- SSL:Self-Supervised Learning(自监督学习)是什么?
- 打印机一直显示正在打印中_汉印CP4000:照片打印机中的“实力派”!支持无线打印,自动覆膜...
- ORACLE查询通用查询被锁对象以及解锁方案
- python小白从哪来开始-小白学python(1)——从selenium开始
- Hadoop学习笔记(二):MapReduce的进度和状态
- 初始化和清理(构造器+重载/重写+this关键字)
- c语言get获取数组参数,C语言访问数组元素
- 2022上半年朋友圈都在传的10本书,找到了
- Android ProfileOwner 应用的能力
- R语言循环读取excel并保存为RData
- 融入动画技术的交互应用——解压小游戏“蒲公英与星”
- 胡适致迷茫大学生:成不在一时,功必不唐捐
- 直播:京东大数据的应用!
- 东方通 -- 如何安装、启动、停止、卸载东方通中间件