【題解】「CSP模擬賽」雨天 rain

CloudWings發表於2024-07-26

雨天 rain

考場上打了一個動態開點線段樹,但是被卡空間了😭:record


先將當前的雨量,畫成折線。下稱:斜線為一條斜率不為 \(0\) 的線段

考慮到每次操作可能帶來兩種影響:

  1. \(x>0\):最多新增一條斜線,或者合併若干個斜率為 \(0\) 的線段;
  2. \(x<0\):刪除若干條斜線。

由此,發現雨量形成的影像一定是不減的。

(進一步發現,她和 \(y=x\) 這個影像的差值也是不減的,於是就可以線段樹上二分了。

但是仔細想一下,每次修改最多新增一條斜線,而且每個斜線至多被刪除一次。

而且只會在最開頭的地方操作,用棧維護,可以做到均攤 \(\mathcal O(q)\)

(其實考場上也想過均攤的做法,幾乎都想出來了,但是覺得線段樹更板一點,就直接開打了😭。

相關文章