我们发现每次操作二之后序列都会变成全\(0\),所以全\(0\)序列是一个非常特殊的序列,我们考虑从他开始的最大收益是多少
由于我们接下来只能实施操作一,所以我们可以发现,任意一个时刻我们都不可能有两个位置满足\(a_i=i\),可以反证,假设\(a_i=i,a_j=j,j>i\),那么对于\(j\)来说,肯定被加了\(j\)次,而这\(j\)次一定也会加到\(i\)上面,所以\(a_i=j>i\),矛盾
所以我们的最大收益就是\(\lfloor \frac{d}{2}\rfloor\),即一次操作一后紧跟操作二
那么我们就有一个初始的暴力算法了,就是枚举我们最开始会进行多少次操作一后进行第一次操作二
但是这样太慢了,我们一定会有一个比\(d\)更小的上界,当达到这个上界的时候,在进行操作一一定不会更优,因为一定会有一种比上界低的操作比其更优越
我们考虑答案的组成,为\(sum+\lfloor \frac{d-i}{2}\rfloor\),其中\(sum\)是第一次操作二的贡献
所以我们只用考虑前\(2n\)天,因为如果进行更多的操作一,\(sum\)也不会超过\(n\),而我完全可以通过后面的\(\lfloor \frac{d-i}{2}\rfloor\)来贡献了
标签:lfloor,frac,sum,Watering,rfloor,操作,Array,我们 From: https://www.cnblogs.com/dingxingdi/p/18031160