跳到正文
信奥逐课

第 285 课

merge

🔵 基础 约 7 分钟

一句话理解

merge 把两个集合合成一个。

为什么要学

先找两个根,再挂在一起。

讲解

if (find(x)!=find(y)) fa[find(x)]=find(y); 可按秩或按大小挂。

例子

void merge(int x, int y) {
    x = find(x); y = find(y);
    if (x != y) fa[x] = y;
}

只改根的父亲。

常见错误

练习 做完再看下一课

合并前应先找到两个根。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课