初始化:

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;

最新文章

  1. 100722C
  2. Android 添加cookie
  3. Android 四大组件之三(广播)
  4. Velocity模板引擎入门
  5. linux,shell输入反斜杠显示&#39;W&#39;。
  6. 【leetcode❤python】121. Best Time to Buy and Sell Stock
  7. Python标准库12 数学与随机数 (math包,random包)
  8. ubuntu打开 txt 文件乱码
  9. Qt Linguist介绍
  10. 深入浅出ExtJS 第七章 弹出窗口
  11. PCB参数计算神器-Saturn PCB Design Toolkit下载及安装指南
  12. eclipse中的工程中有叉叉
  13. Jersey(1.19.1) - XML Support
  14. POJ 3207 Ikki&#39;s Story IV - Panda&#39;s Trick (2-SAT,基础)
  15. HTTP-304 NOT Modified
  16. C#值传递和按引用传递
  17. 【转载】将python脚本打包成exe文件
  18. HTML 基础学习笔记
  19. json数据导出excel
  20. IPC rtsp转发服务器搭建

热门文章

  1. Salesforce LWC学习(四十二) getRecordNotifyChange已弃用
  2. HEU_KMS_Activator_v27.0.2全能系统数字许可激活工具
  3. 使用命名行指令去运行和打包.net6项目
  4. vue2安装sass 预编译
  5. [POI2014]HOT-Hotels 加强版
  6. placeholder 颜色修改
  7. CF837G - Functions On The Segments
  8. PE头结构解析(代码实现)
  9. 自己动手从零写桌面操作系统GrapeOS系列教程——6.电脑启动过程介绍
  10. Apinto 网关 V0.11.1 版本发布,多协议互转,新增编码转换器,接入 Prometheus...