Problem
給水位消長的情況,請問有有多少塊地經過溼乾的次數大於等於 K。
Sample Input
|
|
Sample Output
|
|
Solution
先對地面高度作一次排序,來確保每一次消長會將一個區間的所有元素都 +1
。
用 binary index tree 維護區間調整,單點查詢。
- 假設對於
[l, r]
都加上 v,則對於前綴對A[l] += v
,A[r+1] -= v
這樣保證前綴和不影響其結果。 - 單點查詢 B[l] 元素的結果
= sum(A[1, l])
|
|
給水位消長的情況,請問有有多少塊地經過溼乾的次數大於等於 K。
|
|
|
|
先對地面高度作一次排序,來確保每一次消長會將一個區間的所有元素都 +1
。
用 binary index tree 維護區間調整,單點查詢。
[l, r]
都加上 v,則對於前綴對 A[l] += v
, A[r+1] -= v
這樣保證前綴和不影響其結果。= sum(A[1, l])
|
|