题解:AT_abc379_d [ABC379D] Home Garden
难度严格小于 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\) 就是输出结果。