并查集小白入门
并查集最常用的两个函数就是find()merge()
代码如下所示:
这里最后统计边数时,可以用set来记录(依次遍历,将每个点的父节点加入集合,因为set默认去重,所以相等的父节点自动过滤掉);也可以直接根据f[i] == i 来判断,因为合并完所有的节点后,每个并查集内只有一个点满足
f[i] == i 。

ps:会用并查集这题真的是秒出答案啊!

using namespace std;
#include<bits/stdc++.h>
const int maxn=1e5+5;
int f[maxn];
set<int> s;int find(int i)
{return f[i] == i ? i : f[i]=find(f[i]);
}void merge(int x,int y){f[find(x)]=find(y);
}int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) f[i]=i;int x,y;for(int i=1;i<=m;i++){cin>>x>>y;merge(x,y);}int ans=0;for(int i=1;i<=n;i++){if(f[i] == i) ans++;//s.insert(find(i));}cout<<ans-1;//cout<<s.size()-1;return 0;
}

简单并查集-加边的无向图相关推荐

  1. 并查集——加边的无向图

    并查集--加边的无向图 题目描述 给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~ 输入描述: 第一行两个正整数 n 和 m . 接下来的m行中,每行两个 ...

  2. 算法-并查集-加边无向图

    题目描述:给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~ 输入描述:第一行两个正整数 n 和 m . 接下来的m行中,每行两个正整数 i . j ,表示 ...

  3. LA3644简单并查集判环

    题意:       有n个化合物,每个化合物是两种元素组成,现在要装车,但是一旦车上的化合物中的某几个化合物组成这样一组关系,有n个化合物正好用了n中元素,那么就会爆炸,输入的顺序是装车的顺序,对于每 ...

  4. hdu1232(简单并查集)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. C - BLG POJ - 1417 种类并查集加dp(背包)

    思路:刚看这道题感觉什么都不清楚,人物之间的关系一点也看不出来,都不知道怎么写,连并查集都没看出来,但是你可以仔细分析一下,当输入字符串为"yes"的时候,我们设输入的值为x和y, ...

  6. 1526:宗教信仰——简单并查集

    描述 世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教. 你的学校有n名学生(0 < n <= 50000),你不太可能询问每个人的宗教信仰,因为他们不太愿意透露.但是当你同时找 ...

  7. hdu1272(简单并查集)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. 4.11每日一题之亲戚(洛谷c++)|简单并查集

  9. poj 2524 Ubiquitous Religions (简单并查集)

    题目链接:http://poj.org/problem?id=2524 There are so many different religions in the world today that it ...

最新文章

  1. “蓝桥杯”软件大赛入门训练4道题
  2. 卷积神经网络Convolutional Neural Network (CNN)
  3. 网络逻辑结构设计的内容不包括( )。【最全!最详细解析!】
  4. 盘点三个JavaScript案例——实现限时秒杀、定时跳转、改变盒子大小
  5. HDU2067(卡特兰数)
  6. 剑指offer_02
  7. Java基础---内部类详解
  8. 使用java 遍历文件夹
  9. 14010.xilinx-EMIO扩展SPI设备
  10. 【公测】智能便捷稳定 新版家园只为给你不一样的体验~
  11. 2120: 数颜色(带修莫队)
  12. java项目中包的命名规范
  13. java 64位时间戳转换32位时间戳
  14. 数论基础--欧几里得算法
  15. 微信小程序开发需要什么技术
  16. java中竖线怎么画_java split | (竖线)
  17. 华为手机媒体音量自动静音_华为媒体音量自动静音
  18. 微软SurfacePro8评测
  19. lisp 画一个矩形
  20. 【锐捷交换】交换机Private Vlan配置

热门文章

  1. 与爱同行,育润走进贫困家庭,助推公益事业
  2. 搜索引擎技术 ——链接分析
  3. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记二(2):Cortex-M3处理器内存模型
  4. 【ARM Coresight 介绍 3 - ARM Cortex-M DWT】
  5. MySQL中count是什么函数_MySQL中
  6. 尚硅谷大数据Hadoop(26)P100-P104编写Reduce类型,,WordCounter,运行,程序调试
  7. 使用弥散MRI构建连接体:Why,How和But
  8. ECNU-2018计算机学院考研机试
  9. 新手必备pr 2021快速入门教程「一」初识premiere pro 工作界面
  10. 《JavaWeb视频教程》(p34)