P2839 畅通工程

题目描述

某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?

输入输出格式

输入格式:

第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M

随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号

注意:两个城市连接多条公路是合法的

输出格式:

至少还需建立多少条路

输入输出样例

输入样例#1:

3 3
1 2
1 3
2 3

输出样例#1:

0

输入样例#2:

3 3
1 2
1 2
2 1

输出样例#2:

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 畅通工程相关推荐

  1. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  2. 并查集 HDOJ 1232 畅通工程

    题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...

  3. 畅通工程//最小生成树prim

    题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  4. 【1863】畅通工程 (HDU)

     畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  5. HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...

  6. 畅通工程 HDU - 1233 

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  7. Kruskal HDOJ 1233 还是畅通工程

    题目传送门 1 /* 2 最小生成树之kruskal算法--并查集(数据结构)实现 3 建立一个结构体,记录两点和它们的距离,依照距离升序排序 4 不连通就累加距离,即为最小生成树的长度 5 */ 6 ...

  8. hdu1879 继续畅通工程 最小生成树

    继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...

  9. 题目1028:继续畅通工程

    /********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

最新文章

  1. 车辆姿态相关的一些传感器
  2. Java 洛谷 P1319 压缩技术
  3. OS_FLAG.C(3)
  4. 你如何去管理你的团队?
  5. 有用的Ant构建标签
  6. c iostream.源码_通达信《K线上画趋势线预警》精选指标(附源码)
  7. SSL:Self-Supervised Learning(自监督学习)是什么?
  8. 打印机一直显示正在打印中_汉印CP4000:照片打印机中的“实力派”!支持无线打印,自动覆膜...
  9. ORACLE查询通用查询被锁对象以及解锁方案
  10. python小白从哪来开始-小白学python(1)——从selenium开始
  11. Hadoop学习笔记(二):MapReduce的进度和状态
  12. 初始化和清理(构造器+重载/重写+this关键字)
  13. c语言get获取数组参数,C语言访问数组元素
  14. 2022上半年朋友圈都在传的10本书,找到了
  15. Android ProfileOwner 应用的能力
  16. R语言循环读取excel并保存为RData
  17. 融入动画技术的交互应用——解压小游戏“蒲公英与星”
  18. 胡适致迷茫大学生:成不在一时,功必不唐捐
  19. 直播:京东大数据的应用!
  20. 东方通 -- 如何安装、启动、停止、卸载东方通中间件

热门文章

  1. kindeditor 下图片链接取消边框
  2. PAT 00-自测1. 打印沙漏(20)
  3. 策略模式思想及示例代码(Strategy)
  4. aws ping 不通的解决办法
  5. 软件测试系统学习流程和常见面试题
  6. 零基础学python看什么书好?
  7. 骚年快醒醒,你适合转行做前端吗?
  8. python去除图像光照不均匀_【转载】光照不均匀图像分割技巧
  9. cocos2d pod_cocos2d 和 cocos3d的版本问题
  10. java使用hashset_JAVA中Set集合--HashSet的使用