由于本人比较弱,所以本题没有太严谨的证明……
添加了(本来懒得写的)四边形不等式证明。
首先显然地,pi=⌈max1≤j≤n(aj+√|i−j|)⌉−ai。
这个绝对值看着很不爽,我们考虑正着做一遍然后再倒着做一遍。
那么问题变成求 fi=max1≤j≤i(aj+√i−j)。
朴素显然是 O(n2) 的,然鹅我们发现一点:当 j 一定时,关于 i 的函数 √i−j 的增长是越来越慢的,即 (√i−j)″≤0。
所以这题是具有决策单调性的。
(可以把每个决策对应的函数图像画出来)
具体证明(并不严谨):
记 w(j,i)=√i−j,则只需证明 ∀a<b 有 w(a,b+1)+w(a+1,b)≤w(a,b)+w(a+1,b+1)
即 √b−a+1+√b−a−1≤2√b−a
考虑换元,令 c=b−a,则有 √c+1+√c−1≤2√c
移项有 √c+1−√c≤√c−√c−1
则可考虑证明 f(x)=√x+1−√x 在 (0,∞) 上单调不增。
即 f′(x)=12(1√x+1−1√x)≤0。
12(1√x+1−1√x)≤01√x+1−1√x≤0√x−√x+1√x√x+1≤0∵√x≥0,√x+1≥0∴√x−√x+1≤0√x+1≥√x
这就很显然成立了(
考虑用单调队列去维护最优决策,然后套路地决策单调性 DP 即可。
代码:
1 |
|