并查集

并查集(标准并查集、带权并查集、扩展域并查集) 并查集是一种数据结构,用来管理集合之间的关系,可以用来进行判断是否属于同一集合或将不同的集合合并等操作。我们用个生活中的例子来说明一下原本小明家这个集合只有小明,小红家只有小红,那么他们结婚后(合并)就属于一个家庭(一个集合),像这样,通过并查集我们能够合并不同的集合,然后还能快速地查找他们是不是同一个集合。 阅读详情
并查集的体会
新手向:
by  U__0
直接上干货,废话不多说。
建立一个模型,有10个强盗,我们获取了一些关于他们之间关系的情报(X号强盗与Y号强盗是一伙的格式),分析至多有多少个团伙。
第一步,首先建立一个int dis【10】数组,记录每个强盗的老大,因为上来大家各自为政,所以初始化每个人的老大都是自己。
【注:最终更新这个数组,看有多少个人的老大依然是自己,就说明这个人成立了一个组织,代码就是if(dis[i]==i)n++;//n就是组织的数量】
第二步,分析情报,更新dis【10】数组。例如:3号和4号是一伙的。为了统一,我们默认输入的第一个强盗比较强一点,第二个输入弱一点,所以4号归顺3号,更新,dis[4]=3;
(注:如果你喜欢的话,第一个归顺第二个也可以,有人说这叫靠左原则)。
其实第二步省略了很多步骤,我们计算机判断时不知道3,4号都是自己一个人混的,其实我们应该让4号的老大归顺3号的老大。
然而刚才说的还是错的,实际代码的实现是使用递归的方法,寻找3号的最终老大(所谓最终老大,就是自己的老大还是自己的人)——x号强盗,以及4号的最终老大——y号强盗,找到这两个人,让后一个归顺前一个人(即dis[y]=x),这个时候y号强盗就不再是老大了,而是x号的小弟。
然后我们来看一下前面说过的寻找最终老大的递归方法
int xzld(int n)                                 //n就是我们的目标强盗,而这个函数的目的就是找到该强盗的最终老大,返回值就是该老大的强盗编号
{
       while(1)
       {
                 if(dis[n]==n)return n;                  //假如n号的老大就是自己,那么说明他上面已经没有人了,没错,他就是我们要找的头目
                 else n=dis[n];                             //假如n号的老大不是自己,那么我们需要转移目标(n=dis[n]),找到他的上线(接头上线?卧底的感觉,难道n号强盗还是个打入我军                                                                          //的特务?),他的直接领导有身份两种可能:
                                                                        //一是我们要找的老大(直接输出),
                                                                       //二是一个有点身份的小弟(这个人上面还有人,dis[n]!=n)我们需要循环继续转移目标(n=dis[n])判断他上线的身份,最终确认最一                                                                        //开始输入的n号强盗的最终老大是哪个强盗
        
        }


}
C++ 并查集算法 并查集简介 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。 ... 阅读详情

相关推荐

扩展域并查集 & 带权并查集

扩展域并查集通过拆分域来表示复杂关系,逻辑直观且易于理解。虽然空间开销较大,但在处理复杂关系问题时非常高效。带权并查集通过维护权值来表示节点之间的关系,路径压缩和权值更新确保了高效的关系推导。虽然逻辑稍复杂,但代码简洁且高效,适合处理类似食物链的问题。

Lostgreen的博客 1871

算法与数据结构——并查集、种类并查集和带权并查集

并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。

qq_56639722的博客 3081

并查集及带权并查集

若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。xxx和yyy是亲戚,yyy和zzz是亲戚,那么xxx和zzz也是亲戚。如果xxxyyy是亲戚,那么xxx的亲戚都是yyy的亲戚,yyy的亲戚也都是xxx的亲戚。带权并查集是一种用于解决带权无向图中连通性问题的数据结构。它是并查集的扩展,包括点带权和边带权。它除了记录元素之间的关系外,还可以记录元素的权重。在点带权中,我们使用n。

bhdwyl的博客 1004

带权并查集 & 种类并查集

带权并查集就是在维护集合关系的树中添加边权的并查集,这样做可以维护更多的信息。 在对并查集进行路径压缩和合并操作时,这些权值具有一定属性,即可将他们与父节点的关系,变化为与所在树的根结点关系。 也就是说,权值代表着**当前节点与父节点的某种关系(即使路径压缩了也是这样)**,通过两者关系,一般的并查集,维护的是具有连通性、传递性的关系,例如**亲戚的亲戚是亲戚**。但是,有时候,我们要维护另一种关系:**敌人的敌人是朋友**。种类并查集就是为了解决这个问题而也可以将同一棵树下两个节点的关系表示出来。

SZTU_ZJB的博客 1991

LC滤波器设计实战:从理论计算到PCB布局的完整指南

滤波器是信号处理与电路设计中的基础组件,用于从复杂信号中提取特定频率分量或抑制干扰噪声。其核心原理基于电感(L)和电容(C)等无源元件的频率选择特性,通过特定的网络拓扑实现幅频与相频特性的塑造。在工程实践中,LC滤波器因其结构简单、可靠性高、成本可控,成为射频、模拟及电源电路中的关键技术手段。其设计价值在于将理论网络综合转化为可量产、高性能的硬件解决方案,广泛应用于通信系统、音频处理、电源净化和传感器信号调理等场景。本文聚焦于LC滤波器的工程设计全流程,深入剖析了巴特沃斯、切比雪夫等经典类型的选型权衡,并重

weixin_34194829的博客 273

AD9361 RSSI配置实战:从寄存器到精准功率测量的避坑指南

本文详细解析了AD9361芯片的RSSI配置实战,从寄存器设置到精准功率测量的全流程避坑指南。通过优化模式选择、测量持续时间及高级参数配置,实现高精度信号强度测量,并分享实际项目中的校准流程与性能优化技巧,帮助工程师提升射频接收链路的测量精度。

weixin_38166557的博客 447

并查集,扩展域并查集,带边权并查集详解,OJ练习,详细代码

一看就会系列

EQUINOX1的博客 2869

记一次从零到getshell的渗透历程

0x00 前期 拿到测试范围清单后,首先用脚本获取了下各个子站的标题,基本都是XXX管理系统。浏览器查看后,各个子站也大同小异,纯登录系统,带验证码。这些系统基本都是jsp写的,逮到了两个没有验证码的小宝贝,一番暴力破解,小宝贝对我说:别爱我,没结果。又看到了两个站返回的Set-Cookie头:rememberMe=deleteMe; 很明显,这是Apache Shiro。打了一波exp,没有反应,放弃。搞了三天啥都没搞出来,和女朋友出去玩散散心,还是很高兴。 0x01 初显进展 测试范围内有六个门户

CanMeng'Blog - 一个WEB安全渗透的技术爱好者 3969

并查集和带权并查集及分类并查集

并查集是一种集并集查询于一体的数据结构,它的时间复杂度是Oαn)),阿尔法函数是阿克曼函数的反函数,返回值一般不超过3,数很大时一般不超过7,因此并查集的均摊时间复杂度接近O(1)。一般用来判断两个点是否相通,也可以用来判环,当相通的两个点连接时就会出现环,环的长度是两个点分别到根结点的路径之和加一。

gaomuchen_120309的博客 1044

从零开始:如何用PSINS工具箱构建你的第一个IMU误差模型

本文详细介绍了如何使用严恭敏教授开发的PSINS工具箱构建IMU误差模型,涵盖从基础参数设置到高级误差建模的全过程。通过imuerrset函数配置陀螺零偏、随机游走等核心参数,并结合实战案例展示消费级MEMS器件的误差建模方法,帮助用户提升惯性导航系统的精度与可靠性。

weixin_29284885的博客 322

LVGL 源码分析大全

LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................

Bigan(安)的博客 1万+

数据结构:并查集,种类并查集,带权并查集

最近学了并查集,写篇博客巩固一下~有时候,我们并不关心数据之间的前后关系,也不关心数据的层次关系。一些确定元素只是单纯的聚集在一起,这样的元素聚集体被称为集合。当希望知道某个数据是否存在一个集合中,或者两个元素是否在同一个集合中时,就需要使用一些集合数据结构来维护集合元素之间的关系。而并查集就是一个维护集合的数据结构。

ffqws_的博客 1174

DeepSeek赋能公文写作:从高效成文到精准传情的全维度指南

摘要:AI赋能公文写作的精准化实践 公文写作长期面临框架混乱、素材匮乏、表达不规范、修改低效等痛点。DeepSeek等AI工具通过"精准指令+分步赋能"模式实现突破:首先明确公文的目的性、逻辑性和规范性特征;其次采用包含场景、类型、目的等要素的指令模板;再分四步实施:框架搭建确保层次分明,内容填充解决素材问题,表达优化适配不同语体,合规校验把关格式规范。典型案例显示,AI能将数据罗列转化为"数据+成果+价值"的生动表述,使公文既规范又具感染力。这种AI赋能的写作方法显

通俗易懂学IT 233

浅谈并查集

一些简单种类的并查集

qq_43052183的博客 1219

基于RK3588的YOLOv11目标检测NPU加速系统设计与实现——模型转换(RKNN)、量化与板端部署全流程(含环境搭建与疑难解析)

而RK3588芯片则是一款性能强劲的边缘计算芯片,将YOLOv11部署在RK3588上,可实现本地化的智能检测应用,比如工业质检中的产品缺陷识别、安防领域的异常行为监测等。比如,优化模型的推理速度,可通过调整模型的输入尺寸、使用更高效的推理框架等方式实现;可以使用RK提供的量化工具来完成这一过程,按照工具的使用说明,对ONNX模型进行量化,生成适用于RK3588的模型文件。现在,你已经掌握了从环境搭建到模型部署的全流程,赶快动手实践,让YOLOv11在RK3588上绽放智能光彩,打造属于你的AI应用吧!

m0_71589036的博客 45

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

种类并查集(并查集难点)

种类并查集概念例题 概念 一.什么是种类并查集? 顾名思义就是把一个集合中的元素根据他们不同的关系进行分类与合并。朋友的朋友就是朋友(普通并查集) ,但敌人的敌人也是朋友(维护这种关系就是种类并查集了)。例如:有一伙人他们要拔河(分成两个队),如果小a与小b是敌对关系,那么就不能在一个队,如果小a与小c是朋友,那么他们就在一个队;(朋友的朋友就是朋友,敌人的敌人也是朋友。 ) 种类并查集的作用就是不让两个有敌对关系的人在同一个队伍 二.种类并查集的应用 把朋友放在同一集合里,把敌人放另一集合里。放一起会打架

qq_47549346的博客 4360

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【并查集】 带权并查集详解

一.引入 并查集实际上是一颗由若干个树构成的森林,而如果还需要储存边的权值,则需要额外用一个数组d记录每个结点和其父节点的权值 这个思路其实很简单,但是因为路径压缩会改变点与点的连接关系,路径压缩后,点的父节点变为了根节点,所以需要更新d数组 二.查询函数写法 更新权值在查询操作的同时进行 int root_find(int x){ if(x==pre[x]) return x; int root=root_find(pre[x]); d[x]+=d[pre[...

Qiuker_jl的博客 2488

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

并查集进阶

并查集进阶 文章目录并查集进阶绪论普通并查集初始化搜索合并带权并查集初始化搜索合并种类并查集例题HDU3047(种类并查集)HDU3635(带权并查集)POJ1988(带权并查集)POJ2912(种类并查集)POJ1456(普通并查集) 绪论 我本来以为并查集是一种很简单的数据结构,但是实在是被kuangbin的专题虐的死去活来,故在此总结一下 并查集目前有三部分: 普通并查集,带权并查集,种类并...

Dawn-K の Blog 860

并查集提高——种类并查集(扩展域并查集)

本文介绍了种类并查集(反集)的原理与应用。通过两道例题(P1892团伙问题和P2024食物链问题),展示了如何利用扩展的并查集结构处理复杂关系。核心思想是将敌对关系转化为朋友关系,通过建立反集(i+n节点)来维护传递性。在团伙问题中,将朋友直接合并,敌人则与对方的反集合并;在食物链问题中,采用三倍空间分别表示同类、猎物和天敌关系。文章详细阐述了具体实现流程,并提供了AC代码,帮助读者理解如何通过并查集维护多类型关系,同时指出统计根节点时的注意事项。

2504_90509331的博客 1016

带权并查集+种类并查集

好久没写博客了,差点忘了在哪儿写,不写博客是真的对学过的东西一点印象都没有T_T; 丧心病狂的大佬挂了一道种类并查集+dp的题,然而我却连种类并查集是什么都不知道,赶紧学习缩小差距; 1.带权并查集(对这两个的关系还有点儿懵,先上再说) 就像名字一样,带权并查集就是要多维护一个权值数组;和普通的并查集大同小异,用f[]数组存父节点,val存当前结点到父亲结点的权值, 首先是初始化 void Ini...

qq_44077455的博客 1215

种类并查集&带权并查集

P2024 (NOI2001)食物链 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。 现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道 它到底是哪一种。 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说法是“1 X Y”,表示 X 和 Y 是同类。 第二种说法是“2...

dajiangyou123456的博客 876
上一篇: Linux 学习_mysql
下一篇: 一、连接远程数据库:
U___0
博客等级 码龄11年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值