P3195
求出玩具的字首和 \(S\)。
設 \(f_i\) 表示區間 \([1,i]\) 的最大答案。開始應該是 \(f_0=0\)。
\(f_i =\max_{1 \le j < i}f_j+(i+S_i-L-1-(j+S_j))^2\)。
\(f_i =\max_{1 \le j < i}f_j+(i+S_i-L-1)^2+(j+S_j)^2-2(i+S_i-L-1)(j+S_j)\)。
設 \(g_i=i+S_i,k=L+1\),那麼 \(f_i=\max_{1 \le j<i}f_j+(g_i-k)^2+g_j^2-2g_j(g_i-k)\)。
把 \(i\) 這邊的去掉,就是 \(f_i=(g_i-k)^2+\max_{1 \le j<i} f_j+g_j^2-2g_jg_i-2g_jk\)。
考察兩個點 \(j_1<j_2\),且 \(j_1\) 不劣於 \(j_2\) 的條件。
那就是 \(f_{j_1}+g_{j_1}^2-2g_{j_1}(g_i-k) \le f_{j_2}+g_{j_2}^2-2g_{j_2}(g_i-k)\)
記 \(F(j)=f_j+g_j^2\),那麼 \(F(j_1)-F(j_2) \le (g_{j_1}-g_{j_2})2(g_i-k)\)
由於 \(j_1 <j_2\),所以 \(g_{j_1}<g_{j_2}\),那麼 \(\frac{F(j_1)-F(j_2)}{g_{j_1}-g_{j_2}} \ge 2(g_i-k)\)。
換言之,\(\frac{F(j_2)-F(j_1)}{g_{j_2}-g_{j_1}} \ge 2(g_i-k)\)。
記 \(slope(i,j)=\frac{F(j)-F(i)}{g_j-g_i}\),其中 \(i<j\)。
然後,套路的考慮三個點 \(l<mid<r\),\(mid\) 為最優決策的條件。
需要滿足 \(slope(l,mid)\le 2(g_i-k),slope(mid,r) \ge 2(g_i-k)\)。
那麼 \(slope(l,mid) \le slope(mid,r)\)。
如果不是這樣,\(mid\) 就一定不是最優決策,刪掉即可。最後剩下一個下凸殼。
然後在 \(i\) 操作的時候,只需要找到第一個斜率超過 \(2(g_i-k)\) 的點即可。
AT_dp_z Frog 3
\(f_i=h_i^2+C+\min_{1 \le j<i} f_j+h_j^2 -2h_ih_j\)
對後面進行最佳化。
假設 $j_1 $ 不比 \(j_2\) 劣,且 \(j_1<j_2\)。
那就是 \(f_{j_1}+h_{j_1}^2-2h_ih_{j_1} \le f_{j_{2}}+h_{j_2}^2 -2h_ih_{j_2}\)。
移項,容易得到 \(2h_i(h_{j_2}-h_{j_1})\le f_{j_2}-f_{j_1}+h_{j_2}^2-h_{j_1}^2\)。
記 \(F(j)=f_{j}+h_j^{2}\)。
原式可化為 \(2h_i \le \frac{F(j_2)-F(j_1)}{h_{j_2}-h_{j_1}}\)。
記 \(slope(i,j)=\frac{F(j)-F(i)}{h_{j}-h_{i}}(i<j)\)
假設有三個決策 \(l,mid,r\),其中 \(l<mid<r\)。若 \(mid\) 為最優決策點,需要滿足的條件是:
$slope(l,mid) \le 2h_i,solpe(mid,r) \ge 2h_i $
那麼 \(solpe(l,mid) \le solpe(mid,r)\)。
那麼如果有一對 \(l<mid<r\),滿足 \(solpe(l,mid) \ge solpe(mid,r)\),那麼 \(mid\) 一定不可能成為最優決策,可以刪掉。
那麼最後剩下的相鄰兩個點一定不會出現斜率 $\ge $ 的情況,那麼斜率就是單調遞增的一個下凸殼。
那麼斜率單調遞增了,對於一對斜率不超過 \(2h_i\) 的節點 \((j_1,j_2),j_1 <j_2\),那麼 \(j_2\) 一定比 \(j_1\) 優,那麼應該選的是靠後的,但是對於超過了的,那 \(j_1\) 就不比 \(j_2\) 劣,直接無敵。
因為 \(h\) 單調,所以不會出現之前不優後來優的情況。
至於等號,有一個技巧就是全都帶上肯定是沒問題的。