阅读程序里看到的诡异并查集。
inline int find(int x) { while (x != f[x]) x = f[x] = f[f[x]]; return x; }
看得出来每次 find 压缩一半树高,但是还是不理解为什么(从答案看出)它单次 find 还是 O(logn)O(\log n)O(logn) 的。
find