1 条题解
-
1琪露诺 (9Cirno) LV 8 MOD Baka tayz @ 2024-11-16 16:35:58
令\(dp_{i, j}\) 代表长度为 \(i\),结尾是 \(j\) 的最少操作次数 \((i \in [1,n], j \in [-1, 1])\)
\[
\begin{gathered}
dp_{i,j} = \begin{cases}
a_i = -1& \begin{cases}
dp_{i, -1} = dp_{i - 1, -1} \cr
dp_{i, 0} = +\infty \cr
dp_{i, 1} = dp_{i - 1, 1} + 2 \cr
\end{cases} \cr
a_i = 0 & \begin{cases}
dp_{i, -1} = dp_{i - 1, -1} + 1 \cr
dp_{i, 0} = \min(dp_{i - 1, -1}, dp_{i - 1, 0}) \cr
dp_{i, 1} = dp_{i - 1, 1} + 1 \cr
\end{cases} \cr
a_i = 1 & \begin{cases}
dp_{i, -1} = dp_{i - 1, -1} + 2 \cr
dp_{i, 0} = dp_{i - 1, -1} + 1 \cr
dp_{i, 1} = min(dp_{i - 1, -1}, dp_{i - 1, 0}, dp_{i - 1, 1}) \cr
\end{cases} \cr
\end{cases}
\end{gathered}
\]因为数组下标不能为 \(-1\),我们可以将 \(-1, 0, 1\) 替换为 \(0, 1, 2\)。
- 1