当前位置: 首页 > news >正文

代码随想录|图论|15并查集理论基础

并查集理论基础 | 代码随想录

并查集还是比较简单的,只要搞清楚两个事情:

  1. 并查集是干啥的?解决什么类型问题?
  2. 并查集模板(背下来)

1、并查集是干啥的

并查集主要是两个功能:

  1. 两个元素添加到同一集合。
  2. 判断两个元素是否在同一集合

所以就是合并跟查找。

2、并查集模板

模版就是定义4个函数:

  1. 初始化
  2. 寻根(优化版更快)
  3. 判断
  4. 合并 
#include <bits/stdc++.h>
using namespace std;int n=1005;
vector<int> father(n,0);    // 根数组// 并查集初始化
void init()
{for(int i=0;i<n;i++){father[i]=i;}
}// 并查集寻根
int find(int u)
{if(u=father[u])return u;elsereturn find(father[u]);
}// 并查集寻根(优化版)
int find(int u)
{if(u==father[u]) return u;else return father[u]=find(father[u]);
}// 判断u和v是否在一个集合里面
bool isSame(int u,int v)
{u=find(u);v=find(v);return u==v;
}// 将两个元素添加到同一个集合里
void join(int u,int v)
{u=find(u);v=find(v);if(u==v) return;    // 如果根相同,则说明在一个集合father[u]=v;
}

http://www.dtcms.com/a/276840.html

相关文章:

  • 算法学习笔记:18.拉斯维加斯算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • RFCOMM协议详解:串口仿真与TCP/IP协议栈移植技术——面试高频考点与真题解析
  • 1.2.3_2 TCP/IP模型
  • Java小白-设计模式
  • 动态规划理论基础,LeetCode 509. 斐波那契数
  • 012_PDF处理与文档分析
  • jenkins使用Jenkinsfile部署springboot+docker项目
  • 011_视觉能力与图像处理
  • Docker 搭建本地Harbor私有镜像仓库
  • Rerank模型
  • 【Linux学习笔记】认识信号和信号的产生
  • C++随笔
  • iOS高级开发工程师面试——关于优化
  • Datawhale 2025 AI夏令营 MCP Server Task2
  • 一文认识并学会c++模板(初阶)
  • 基于无人机 RTK 和 yolov8 的目标定位算法
  • ESP32使用freertos更新lvgl控件内容
  • 【时间之外】尘封的智能套件复活记
  • 数据结构与算法之美:跳表
  • 【CMake】CMake构建项目入门
  • 数据标注:AI时代的黄金矿场如何规避法律暗礁
  • C语言习题三
  • HCIA--- OSPF动态路由实验
  • 基于springboot+Vue的二手物品交易的设计与实现(免费分享)
  • 《棒垒球知识科普》技巧赛规则·棒球1号位
  • houdini 用 vellum 制作一个最简单的布料
  • Windows环境下JS计时器精度差异揭秘
  • PyQt5布局管理:QHBoxLayout和QVBoxLayout详解
  • cmd命令之for循环
  • 深入理解-ConcurrentHashMap:JDK-1-7-与-1-8-的演进与实现原理