[題解][洛谷P3594] WIL

ZWZWW發表於2024-10-06

題目描述
一段長度為n的序列,可以將其中連續不超過d個元素修改成0。
請找到一段最長的,且和不超過p的區間。

題意分析
n範圍為2e6,考慮O(nlogn)的做法。
二分答案列舉可能最長的長度L,透過字首和,以及對每個位置後d個元素的字尾和維護一個單調佇列,
O(n)列舉每個位置是否可能滿足sum[i]-last[i]<=p判斷即可。
(之前想的時候沒想出來雙指標的方法,具體是在l不變的時候儘可能將r右移,r無法移動則移動l,同時維護單調佇列更新答案。時間複雜度O(n))

相關文章