CF660F Bear and Bowling 4

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)\)

\(\texttt{Code}\)

猜你喜欢

转载自www.cnblogs.com/Ryedii-blog/p/12694113.html