day1 AcWing 836. 合并集合
2024-09-18 20:04:23
初始化:
n个下表对应n个集合,根节点的特征是父节点就是其本身。
for(int i = 1; i <= n; i++)
p[i] = i;
M操作:如果两个元素在同一个集合中,什么也不做,否则将两个集合合并;
Q操作:两个集合在同一个集合回复“Yes”,否则回复“No”;
核心思想:(1)两个集合合并,只需要将一个集合的根节点插入另一个集合,作为另一个集合的父节点即可;
(2)查询根节点判断祖先:使用路径压缩,对于一个集合中的元素x,在寻找根节点时,沿着根节点路径的所有节点都直接指向根节点。
find(int x){ //返回 x 的根节点
if(p[x] != x) //父节点不是根节点
p[x] = find(p[x]); //递归向上寻找,根节点直接指向祖先节点
return p[x];
}
M: if(find(a) != find(b)){ // a, b分别在不同的集合中
p[find(a)] = find(b); //b的根节点作为a的根节点的父节
}
Q: if(find(a) == find(b)) return Yes;
else return No;
最新文章
- 100722C
- Android 添加cookie
- Android 四大组件之三(广播)
- Velocity模板引擎入门
- linux,shell输入反斜杠显示&#39;W&#39;。
- 【leetcode❤python】121. Best Time to Buy and Sell Stock
- Python标准库12 数学与随机数 (math包,random包)
- ubuntu打开 txt 文件乱码
- Qt Linguist介绍
- 深入浅出ExtJS 第七章 弹出窗口
- PCB参数计算神器-Saturn PCB Design Toolkit下载及安装指南
- eclipse中的工程中有叉叉
- Jersey(1.19.1) - XML Support
- POJ 3207 Ikki&#39;s Story IV - Panda&#39;s Trick (2-SAT,基础)
- HTTP-304 NOT Modified
- C#值传递和按引用传递
- 【转载】将python脚本打包成exe文件
- HTML 基础学习笔记
- json数据导出excel
- IPC rtsp转发服务器搭建
热门文章
- Salesforce LWC学习(四十二) getRecordNotifyChange已弃用
- HEU_KMS_Activator_v27.0.2全能系统数字许可激活工具
- 使用命名行指令去运行和打包.net6项目
- vue2安装sass 预编译
- [POI2014]HOT-Hotels 加强版
- placeholder 颜色修改
- CF837G - Functions On The Segments
- PE头结构解析(代码实现)
- 自己动手从零写桌面操作系统GrapeOS系列教程——6.电脑启动过程介绍
- Apinto 网关 V0.11.1 版本发布,多协议互转,新增编码转换器,接入 Prometheus...