題解:AT_abc379_d [ABC379D] Home Garden

Redamancy_Lydic發表於2024-11-09

難度嚴格小於 C 題。

你考慮每盆花被種植的時間一定單調不降,這啟示我們去用二分。

具體的,我們用一個陣列 \(a\) 表示當前所有的花的種植時間,並記錄一個當前時間 \(t\)。對於每個 1 操作都在陣列後面加上個元素 \(t\),對於 \(2\) 操作讓 \(t\leftarrow t+T\)

對於操作 3,能夠摘取的花 \(i\) 應滿足的條件顯然是 \(a_i+h\le t\),即 \(a_i\le t-h\),這個顯然可以直接二分求解。

需要注意的是,每次 3 操作後我們需要刪除所有滿足條件的花,這個可以直接動態維護一個 \(last\) 表示最後沒被摘的花的下標,因為每次刪除後所有刪除的花一定是一個字首。

這樣每次 3 操作的答案直接減去 \(last\) 後對 \(0\)\(\max\) 就是輸出結果。

提交記錄

相關文章