跳到正文
信奥逐课

第 284 课

find

🔵 基础 约 7 分钟

一句话理解

find 返回祖先,代表这个集合。

为什么要学

查询和合并都先 find。

讲解

递归找 fa[x]==x 的根。同时做路径压缩:fa[x]=find(fa[x])。

例子

int find(int x) {
    return fa[x] == x ? x : fa[x] = find(fa[x]);
}

一路向上,顺手把路径上的点直接挂到根。

常见错误

练习 做完再看下一课

路径压缩的 find 常写 fa[x] = find(fa[x]),终点是 ____

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

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

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

左右方向键也可翻课