雨天 rain
考場上打了一個動態開點線段樹,但是被卡空間了😭:record
先將當前的雨量,畫成折線。下稱:斜線為一條斜率不為 \(0\) 的線段
考慮到每次操作可能帶來兩種影響:
- \(x>0\):最多新增一條斜線,或者合併若干個斜率為 \(0\) 的線段;
- \(x<0\):刪除若干條斜線。
由此,發現雨量形成的影像一定是不減的。
(進一步發現,她和 \(y=x\) 這個影像的差值也是不減的,於是就可以線段樹上二分了。
但是仔細想一下,每次修改最多新增一條斜線,而且每個斜線至多被刪除一次。
而且只會在最開頭的地方操作,用棧維護,可以做到均攤 \(\mathcal O(q)\)。
(其實考場上也想過均攤的做法,幾乎都想出來了,但是覺得線段樹更板一點,就直接開打了😭。