首先既然是对前缀考虑问题,那么我们从后往前考虑,这样子就规避的转移不了的问题,设 \(f_{i, j}\) 为 \(i \sim n\) 一共操作了 \(j\) 次的方案数,那么当转移到 \(i - 1\) 时,如果 \(s_{i - 1} = 0\):
\[f_{i - 1, l + j} = f_{i, j} \times C_{\frac{l + j + 1}{2}}^l
\]
否则:
\[f_{i - 1, l + j} = f_{i, j} \times C_{\frac{l + j}{2}}^l
\]
比较简单的理解就是看有多少次操作后 \(s_{i - 1} = 0\),将 \(i - 1\) 的操作插入到其后面,注意对 \(i - 1\) 操作也会对其产生影响。