并查集求连通块个数的模板

#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+5;
vector<int>G[maxn];bool isRoot[maxn] = {false};
int pre[maxn];void init(int n){for(int i = 0; i <= n; i++) pre[i] = i;
}int find(int x){if(pre[x] == x) return x;else return pre[x] = find(pre[x]);
}void mix(int a, int b){int fa = find(a), fb = find(b);if(fa != fb){pre[fa] = fb;}
}int cul(int n){int ans = 0;for(int i = 1; i <= n; i++){isRoot[find(i)] = true;}for(int i = 1; i <= n; i++){ans += isRoot[i];}return ans;
}int main()
{int n;scanf("%d", &n);init(n);for(int i = 1; i < n; i++){int a, b;scanf("%d%d", &a, &b);mix(a, b);}//连通块个数int cnt = cul(n);printf("%d\n", cnt);return 0;
}Input :
5
1 2
1 3
1 4
2 5
Output:
1
Input:
5
1 3
1 4
2 5
3 4
Output:
2

求连通块个数(使用并查集)相关推荐

  1. 图中连通块的个数:并查集

    图的连通性问题 在地图上有若干城镇(点),已知所有有道路直接相连的城镇对.要解决整幅图的连通性问题.比如,随意给你两个点,让你判断它们是否连通:或者问你整幅图一共有几个连通块,也就是被分成了几个互相独 ...

  2. DFS求连通块数目(深搜)

    DFS求连通块数目 这里认为,连通块是包括斜对角线的路径连通的块. 测试数据 5 5 ****@ *@@*@ *@**@ @@@*@ @@**@ 计算通过@相连的连通块的个数 测试输出: 2 样例代码 ...

  3. 【BZOJ 1098】办公楼(补图连通块个数,Bfs)

    补图连通块个数这大概是一个套路吧,我之前没有见到过,想了好久都没有想出来QaQ 事实上这个做法本身就是一个朴素算法,但进行巧妙的实现,就可以分析出它的上界不会超过 $O(n + m)$. 接下来介绍一 ...

  4. 【Codeforces Round #548(Div. 2)】Edgy Trees(数学+bfs求连通块)

    题目链接 C. Edgy Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. UVa572 Oil Deposits DFS求连通块

    技巧:遍历8个方向 for(int dr = -1; dr <= 1; dr++)for(int dc = -1; dc <= 1; dc++)if(dr != 0 || dc != 0) ...

  6. *【ZOJ - 3781】Paint the Grid Reloaded(dfs求连通块缩点,bfs求最短路,建图技巧)

    题干: Leo has a grid with N rows and M columns. All cells are painted with either black or white initi ...

  7. CF1139C Edgy TreesDFS求连通块大小、思维

    题目 题目链接 给一颗树,每条边都是红或黑的.问有多少种大小为kkk的序列[a1,a2...,ak][a_1,a_2...,a_k][a1​,a2​...,ak​]满足,从a1a_1a1​到a2a_2 ...

  8. [uva]AncientMessages象形文字识别 (dfs求连通块)

    非常有趣的一道题目,大意是给你六种符号的16进制文本,让你转化成二进制并识别出来 代码实现上参考了//http://blog.csdn.net/u012139398/article/details/3 ...

  9. POJ 2386 dfs求连通块

    题目: 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方.我们用一个 的网格图表示.每个网格中有水(W) 或是旱地(.).一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑.约翰想弄清楚他 ...

最新文章

  1. 美多商城之购物车(购物车存储方案)
  2. 计算机IO系列(二)BIO/NIO/多路复用实现
  3. 线性表【项目 - 求集合并集C语言】(带注释)
  4. 美团点评APP在移动网络性能优化的实践,吊打面试官系列!
  5. codevs 3981 动态最大子段和
  6. android surface windows,Android易混概念辨析之Surface,Window,View,SurfaceView,Bitmap
  7. DatagridView 跳转并显示特定的行
  8. Machine Learning Lecture Notes
  9. HTML5期末大作业:我的家乡网站设计——我的家乡-杭州(7页) HTML+CSS+JavaScript 大学生家乡网页作品 老家网页设计作业模板 学生网页制作源代码下载
  10. matlab傅里叶变换处理图像,MATLAB数字图像处理(1)基本操作和傅里叶变换
  11. WLAN 与WIFI的区别?
  12. 一个老程序员的计算机视觉蹒跚学习之路
  13. SDNU-1014 页码问题
  14. 【GNSS】GREAT多频多系统GREAT-UPD开源代码-第4.1章 代码解读之gnss.h/gnss.cpp
  15. 全文检索引擎ElasticSearch:文档管理、集成IK分词器
  16. ABP应用开发(Step by Step)-下篇
  17. No7.线程常用操作方法
  18. Java实现 兔子数问题
  19. 【转载】【UEFI学习】edk2中各个包介绍
  20. iPad mini7:库克终于舍得堆料了?

热门文章

  1. 「测评」酷炫“霸王龙”Miposaur机器人测评
  2. Linux下Tomcat添加为系统服务
  3. POJ 1651 Multiplication Puzzle 区间dp(水
  4. SortedMap接口
  5. vc 显示非模态对话框
  6. Spirng MVC +Velocity 表单绑定命令对象
  7. 转:如何进行软件架构设计?
  8. Secure-CRT使用技巧
  9. O太多,具体都代表什么呢?
  10. LeetCode_Convert Sorted Array to Binary Search Tree(Java实现)