CF660F Bear and Bowling 4
\(\texttt{Description}\)
给定长度为 \(n\) 的数列 \(\langle a_i\rangle\),求 \(\max_{0\le i< j\le n}\sum_{k=i+1}^ja_k(k-i)\)。
\((n\le 2\times 10^5,|a_i|\le 10^7)\)
\(\texttt{Solution}\)
令 \(x_i:=\sum_{j=1}^ia_j\),\(y_i:=\sum_{j=1}^ia_jj\)。
考虑区间 \([i,j)\) 的答案 \(v(i,j):=y_j-y_i-i(x_j-x_i)\),移项有
\[\overbrace{ix_i-y_i}^{y}=\overbrace{i}^{x}\underbrace{x_j}_{k}\overbrace{-y_j+v(i,j)}^{d} \]
我们可以枚举 \(j\in[1,n]\),对于所有 \(i\in[0,j)\) 有决策点 \((i,ix_i-y_i)\),维护上凸包即可。
时间复杂度 \(O(n\log n)\)。