线段树分治 学习笔记

有时候,一些操作并不支持删除,但支持撤销(比如并查集),就用线段树分治。

可撤销并查集

用按秩合并,但不能路径压缩。

记录一个操作栈,代表第 \(i\) 次操作。撤销的时候就弹栈,复原 \(x\) 的父亲为它自己,以及 \(y\)height 即可。

二分图

暴力的话,用扩展域并查集,但是不好删除,但是好撤销。

线段树上 \([l,r]\) 代表 \(l\sim r\) 时候的操作有什么(用 vec)。然后 dfs 一遍线段树,遍历到叶子节点的时候判断一下是否合法,回溯时撤销并查集即可。因为并查集操作是 \(O(\log n)\) 的,所以总的是 \(O(K+m\log n)\)(应该是。)。

posted @ 2022-01-20 15:50  BlankAo  阅读(30)  评论(0编辑  收藏  举报