Range Minimum Sum

最爱丁珰發表於2024-08-11

非常經典的刪數問題,見這篇題解

我賽時的時候考慮的時候刪除了\(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}\)

另外,這個東西好像就是笛卡爾樹,有空了可以學一下

相關文章