zoj4062

题意

直线上有(n)个植物,第(i)棵植物坐标为(i),浇一次水会长(a_i)高。
你最开始在(0)点,执行(m)次操作。每次操作必须往左或右走一步并给走到的那棵植物(如果有)浇一次水。
最大化(m)次操作后最矮的植物的高度。

做法

二分答案,题目转化成,每个位置要至少经过几次,然后求最小次数。

考虑答案至少为(1)的情况:

结论1:存在合法解最终停留在(n)(n-1)

证明:
由于答案至少为(1),所以一定到过(n)
如果最后在(i)(i< n-1)),那么一定存在(ilongrightarrow i+1longrightarrow i+2longrightarrow i+1longrightarrow i)
可以换成(ilongrightarrow i+1longrightarrow ilongrightarrow i+1longrightarrow i+2),反复通过调整法即可。

结论2:存在,最终停留在(n)(n-1),且方案为(1,2,1,2,ldots,2,3,2ldots,n-1,n,n-1)

证明:
解形成了一个欧拉路,中间可以调换,容易证明。

那么可以通过贪心得到次数。

原文地址:https://www.cnblogs.com/Grice/p/14762326.html