并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题。
给出一个有向图,经过并查集算法可以很快地判断任意连个点是否属于同一个集合。

#include<iostream>
#include<stdio.h>
#include<string.h>
#define MAXN 1000
using namespace std;
int root[MAXN]; //the root of a node
int layer[MAXN];
int n, m;   //the number of node and edge
void init(){for (int i = 0; i < n; i++){root[i] = i;layer[i] = 0;}
}
//find the finaly root and updata the journey
int find_root(int a){if (root[a] == a ) return a;return root[a] = find_root(root[a]);
}//connect tow node
void unite(int a, int b){   int aroot = find_root(a);int broot = find_root(b);if (aroot == broot) return;// node with smaller ranke connect to the another rootif (layer[aroot] < layer[broot])  root[aroot] = broot;else root[broot] = aroot;//only if tow node equal to rank then change layerif (layer[aroot] ==  layer[broot]) layer[aroot]++;
}int main(){cin >> n >> m;init();while (m--){int a, b;cin >> a >> b;unite(a, b);}//show the resultfor (int i = 0; i < n; i++){printf("%d ---> %d \n", i, root[i]);//if root[i] is same then those node come from a same set}return 0;
}/*
example input:
8 6
0 1
3 1
1 4
5 2
6 2
7 6
*/

c++ 写并查集算法模板相关推荐

  1. 简单易懂的并查集算法以及并查集实战演练

    文章目录 前言 一.引例 二.结合引例写出并查集 1. 并查集维护一个数组 2. 并查集的 并 操作 3. 并查集的 查 操作 4. 基本并查集模板代码实现--第一版(有错误后面分析) 4.1 Jav ...

  2. C++并查集算法(详细)

    C++并查集算法 什么是并查集? 并查集写法 详解 例题:洛谷 P3367.[模板]并查集 题意 代码 什么是并查集? 当我们在做图论题目的时候 经常会读到一些长这样的题目描述: -连接 a , b ...

  3. 并查集算法总结专题训练

    并查集算法总结&专题训练 1.概述 2.模板 3.例题 1.入门题: 2.与别的算法结合: 3.考思维的题: 4.二维转一维: 5.扩展域并查集&边带权并查集: 4.总结 1.概述 并 ...

  4. Union-Find 并查集算法详解

    Union-Find 并查集算法详解 文章目录 Union-Find 并查集算法详解 一.问题介绍 二.基本思路 三.平衡性优化 四.路径压缩 五.总结 六.例题 一.问题介绍 简单说,动态连通性其实 ...

  5. 7-36 并查集【模板】 (10 分)

    7-36 并查集[模板] (10 分) 给出一个并查集,请完成合并和查询操作. 输入格式: 第一行包含两个整数N.M,表示共有N个元素和M个操作. 接下来M行,每行包含三个整数Zi​.Xi​.Yi​. ...

  6. 并查集算法 | Union-Find Algorithm

    Union-Find Algorithm即并查集算法,常用于解决 动态连通性,判断有向无圈图等问题. 根本上讲,Union-Find算法就和他的名字一样是一种对不相交集数据结构执行两个有用操作的算法, ...

  7. 并查集算法----犯罪团伙(黑科技)

    一.题目描述 犯罪团伙(gang.cpp) 题目描述  警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯 ...

  8. 给我三分钟,带你领略热血江湖中的并查集算法

    你好,我是小黄,一名独角兽企业的Java开发工程师. 校招收获数十个offer,年薪均20W~40W. 感谢茫茫人海中我们能够相遇, 俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习 ...

  9. 并查集-算法详解及例题(最小生成树问题)

    一.并查集的概念: 并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题.一些常见的用途有求连通子图.求最小生成树的 Kruskal 算法和求 ...

  10. 【codevs1073】家族,胡写并查集

    1073 家族 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容 ...

最新文章

  1. C语言关键字、标识符和注释
  2. python3 not 用法
  3. 揭秘TensorFlow:Google开源到底开的是什么?
  4. 【机器视觉】 dev_open_file_dialog算子
  5. 蓝桥杯JAVA省赛2013-----B------4(黄金连分数)
  6. Android 系统(206)---Android 学习网站汇总
  7. ORACLE计算表引占用空间大小
  8. 用证书实现windows 2003下IIS的SSL安全通信
  9. Ajax学习笔记-错误的处理-7
  10. Intel Visual Fortan与gfortran使用rename函数的区别
  11. 单片机c语言中的精确延时程序,单片机精确毫秒延时函数
  12. (超详细) eclispe如何连接SQL Server2019(通过JDBC驱动包连接)
  13. 配置8266连接中移物联网OneNet平台
  14. 第56章 SQL UCASE() 函数教程
  15. 【软件工程】概念模型、逻辑模型、物理模型
  16. 如何使用redis做一个定时任务?
  17. 第0篇日记 先立一个flag——开始有了做阅读器的想法
  18. CleanMyMac X4.10.6mac上非常强大的系统清理工具
  19. C. Doremy‘s IQ(二分/思维)
  20. 《毕 业 论 文 致 谢 大 赏》

热门文章

  1. 《Spring实战第四版》随书源码导入Eclipse
  2. ai中如何插入签名_如何在PDF文件中插入手写签名?手把手教会你,轻松设置签名...
  3. 最后的作业——NP完全问题证明
  4. JDK1.7 jdk7安装和环境变量配置(Windows环境)
  5. java 定时任务 cron
  6. Windows11安装安卓子系统WSA及安卓应用
  7. 《公路测设技术》课程网课最新作业测验考试
  8. 阿里海量大数据平台的运维智能化实践
  9. 卡方分布、t分布、F分布
  10. 最新百度网盘下载神器,免安装、免登录、不限速!一键打开网址就能用