约 10 分钟
如果树长得很高,find 会变慢。路径压缩让每次 find 顺手把结点直接挂到根上,树就变得又矮又平:int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); }。配合它,并查集几乎是 O(1)。
int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); }
路径压缩优化的是并查集的哪个操作?
登录 后可看答案