難度嚴格小於 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\) 就是輸出結果。
提交記錄