RE 是 WA 后解密出非法输入导致的。在这些点 WA 有可能是你在清空主席树的时候出现了以下错误:
-
多次删除一个点:你需要标记一个点是否已经被删除,因为主席树的结构,继承树 T 的树 ET 也会访问 T 中的点,可能重复删除。
-
递归时边删除边继承:在你标记 T 中的一个点被删除后,将其编号放入内存栈,在继承时使用了新的编号 i 作为重构后的树 T′,而子树内还有待删的树 ET 继承了 i 点,而对 ET 进行删除时 i 已经被使用了,因此可能会误删 i,导致一系列错误,使得主席树的结构与期望的结构不同。
所以需要记录点是否被删除,先删光整棵树再重构。