0%

AGC044E Random Pawn

首先最大值处一定是直接停下来的,所以可以断环成链,a1,an+1a_1, a_{n + 1} 处为最大值。

f(i)f(i) 表示当前在 ii 的答案,f(1)=f(n+1)=a1f(1) = f(n + 1) = a_1

f(i)=max(ai,f(i1)+f(i+1)2bi)f(i) = \max(a_i, \frac{f(i - 1) + f(i + 1)}{2} - b_i)

接下来的都是没见过的套路:首先先把 bi-b_i 搞掉,解决办法是两边同时减去一个修正值 cic_i

F(i)=f(i)ciF(i) = f(i) - c_ivi=aiciv_i = a_i - c_i

F(i)=max(vi,F(i1)+F(i+1)2bici+ci1+ci+12)F(i) = \max(v_i, \frac{F(i - 1)+ F(i + 1)}{2} - b_i - c_i + \frac{c_{i - 1} + c_{i + 1}}{2})

要使得 bici+ci1+ci+12=0-b_i - c_i + \dfrac{c_{i - 1} + c_{i + 1}}{2} = 0,即 bi+ci=ci1+ci+12b_i + c_i = \dfrac{c_{i - 1} + c_{i + 1}}{2}

注意这里默认 F(0)=F(n+2)=F(0) = F(n+ 2) = -\infin,让式子在 1,n+11, n + 1 处成立,令 c1=0c_1 = 0 就可以递推了。

F(i)=max(vi,F(i1)+F(i+1)2)F(i) = \max(v_i, \frac{F(i - 1)+ F(i + 1)}{2})

考虑钦定一些点为固定点,它们都直接取 viv_i,观察相邻两个固定点 l,rl, r

对于 l<i<rl < i < rF(i)=F(i1)+F(i+1)2F(i) = \dfrac{F(i - 1) + F(i + 1)}{2},设 F(l)=vi=A,F(l+1)=xF(l) = v_i = A, F(l + 1) = x,之间的序列可以表示成:

a x 2xa 3x2a 4x3aF(r)a\ x\ 2x - a\ 3x - 2a\ 4x - 3a\cdots F(r)

这是一个等差数列,在二维平面上画出来发现 li<rF(i)\sum_{l\le i\color{red}{<r}} F(i) 恰好是 (l,F(l)),(r,F(r))(l, F(l)), (r, F(r)) 连起来和 xx 轴构成的梯形的面积。

(F(l)+F(r))×(rl)/2(F(l)+ F(r))\times (r - l) / 2

固定点的选择即上凸包。