Editorial for DMPG '18 G2 - Gardening Fun
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
The key idea is that when watering a subarray, do not consider the entire subarray. Instead, consider the number of times a certain plant is watered as a result of these subarrays. Let  be the minimum cost to water the first 
 plants and such that the 
 plant has been watered by 
 subarrays. Then we add 
 for each new subarray at this step and 
 for each subarray at this step. So we obtain the following recurrence:
Call  the largest value of 
. It is not hard to see that we only need to consider 
 up to 
. The constraints for the first subtask allow this recurrence to pass in time.
Time Complexity: 
For the second subtask, we will perform an optimization so that the transition becomes  instead of the original 
. Rewrite the recurrence by rearranging the terms which do not depend on 
:
We can precompute  and 
 in 
 for all 
 and for each 
 by doing a running minimum. So we can now do the transition in 
.
Time Complexity: 
Comments