news 2026/5/27 22:58:09

查并集的理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
查并集的理解

查并集

1. 找

intfind(intx,intpa[]){if(pa[x]!=x){find(pa[x],pa[])}returnpa[x];}

通过递归,溯源到x的父节点。
对于int pa[] = {0,1,1,1}
下标序列int idx[] = {0,1,2,3}
那么序列2,3的父就是1。如果调用find(3,pa),那么就是

从而找到了3的父节点

2. 将两个节点合并

voidunite(intx,inty,intpa[]){intpx=find(x,pa);intpy=find(y,pa);if(px!=py){pa[py]=px;}return;

找到下x和y的父节点
将y的父节点改为x的父节点。

3. 初始化父节点

intpa[100];for(inti=1;i<=100;i++){pa[i]=i;}

每个数的初始父节点都是她本身

使用场景

核心本质:快速处理集合的合并、查询两个元素是否同属一个集合,适合动态连通性问题。

一、经典基础场景

1. 连通性判断

  • 无向图中两点是否连通

  • 网络节点是否在同一子网、好友是否同圈子

2. 集合合并

  • 帮派合并、朋友圈合并、区域合并

3. 找连通块数量

  • 岛屿数量(网格连通)、省份数量、图中连通分量数

二、算法竞赛高频场景

1. 最小生成树 Kruskal 算法
按边权从小到大加边,用并查集判断是否形成环,不连通就合并。

2. 二分图判定(带权并查集)
维护节点间关系(敌对/同类),处理食物链、敌人朋友关系。

3. 区间合并
连续区间合并、区间连通性。

4. 离线处理查询
先把所有操作读入,按顺序合并,再回答查询。

三、实际工程场景

1. 社交网络
判断两个人是否间接好友、社群划分

2. 网络路由
节点连通性、故障域划分

3. 图像分割
像素连通区域聚类

4. 并查集+哈希
动态分组、去重、批量合并分组

四、带权并查集(扩展)场景

维护相对关系,不止简单连通:

  • 食物链(A吃B,B吃C,A和C关系)

  • 关系传递:朋友、敌人、相等、不等

  • 向量偏移、距离关系

五、一句话总结适用条件

只要问题满足:

  • 元素可分组

  • 支持合并两个组

  • 支持查询两点是否同组
    优先用并查集,时间复杂度接近 O(α(n)),极快。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 22:58:08

【HTML+CSS+JavaScript】02 CSS样式

1. CSS 介绍 CSS(Cascading Style Sheet)&#xff0c;层叠样式表, 用于控制页面的样式。 CSS 能够对网页中元素位置的排版进行像素级精确控制&#xff0c;实现美化页面的效果&#xff0c;能够做到页面的样式和 结构分离。 CSS 是在 HTML 文档结构的基础上进行样式定义的。 …

作者头像 李华
网站建设 2026/5/22 3:39:28

终极指南:5分钟掌握iFakeLocation实现iOS虚拟定位的完整方法

终极指南&#xff1a;5分钟掌握iFakeLocation实现iOS虚拟定位的完整方法 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 想在iOS设备上轻松模拟任意位置吗…

作者头像 李华
网站建设 2026/5/22 3:39:28

彻底掌控Windows Defender:开源工具defender-control完全指南

彻底掌控Windows Defender&#xff1a;开源工具defender-control完全指南 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control…

作者头像 李华
网站建设 2026/5/22 3:36:19

Skillhub网站

✅ SkillHub&#xff08;腾讯官方&#xff09; 官网&#xff1a;https://skillhub.tencent.comskillhub.tencent.com备用入口&#xff1a;https://skillhub.cloud.tencent.comskillhub.cloud.tencent.com定位&#xff1a;腾讯云推出的中文 AI 技能商店&#xff08;OpenClaw 国…

作者头像 李华
网站建设 2026/5/22 3:36:02

GanttProject:免费开源项目管理软件的终极完整指南

GanttProject&#xff1a;免费开源项目管理软件的终极完整指南 【免费下载链接】ganttproject Official GanttProject repository. 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 您是否正在寻找一款功能强大、完全免费且跨平台的项目管理工具&#xff1f;…

作者头像 李华