警示后人:RE #1236 | 关于清空主席树的常见错误
查看原帖
警示后人:RE #1236 | 关于清空主席树的常见错误
161697
ღꦿ࿐楼主2024/7/2 11:17

RE 是 WA 后解密出非法输入导致的。在这些点 WA 有可能是你在清空主席树的时候出现了以下错误:

  • 多次删除一个点:你需要标记一个点是否已经被删除,因为主席树的结构,继承树 TT 的树 ETET 也会访问 TT 中的点,可能重复删除。

  • 递归时边删除边继承:在你标记 TT 中的一个点被删除后,将其编号放入内存栈,在继承时使用了新的编号 ii 作为重构后的树 T′T',而子树内还有待删的树 ETET 继承了 ii 点,而对 ETET 进行删除时 ii 已经被使用了,因此可能会误删 ii,导致一系列错误,使得主席树的结构与期望的结构不同。

所以需要记录点是否被删除,先删光整棵树再重构。

2024/7/2 11:17
加载中...