Range Minimum Sum

非常经典的删数问题,见这篇题解

我赛时的时候考虑的时候删除了\(a_i\)后,有哪些区间会被删除,哪些区间会被加入

删除的区间:最小值是\(a_i\)的区间(\(O(1)\)计算)、\(a_i\)作为一个端点但是\(a_i\)不是最小值的区间(差分维护)

加入的区间:左端点属于\((l_i,i)\)且右端点属于\((i,r_i)\)的区间(RMQ+二分)

要注意的是,我因为每组数据初始化ST表的时候,没有初始化f[0][0]f[n+1][0]导致错误(因为我们的单调栈最终是要加入一个\(a_0\)或者\(a_{n+1}\)的,而\(a_{n+1}\)每次都要清零,但是f[n+1][0]不清零的话可能还是上一次的\(a_{n+1}\)

另外,这个东西好像就是笛卡尔树,有空了可以学一下

posted @ 2024-08-11 16:17  最爱丁珰  阅读(34)  评论(0)    收藏  举报