非常经典的删数问题,见这篇题解
我赛时的时候考虑的时候删除了\(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}\))
另外,这个东西好像就是笛卡尔树,有空了可以学一下
标签:Sum,Range,Minimum,端点,区间,清零 From: https://www.cnblogs.com/dingxingdi/p/18353550