思路
乍一看非常的复杂, 实际上也非常的复杂
令 \(f_{i, j}\) 表示第 \(i\) 天持有 \(j\) 股的最优赚钱
我们可以枚举从什么地方转移而来, 列出柿子
\[f_{i, j} = \max \{ f_{i - 1, j}, \max_{k} [f_{i - w - 1, k} - AP_i \cdot (j - k), f_{i - w - 1, k} +BP_i \cdot (k - j)] \}
\]
大概是这样, 字面意思, 就是不买不卖 / 买 / 卖的分类讨论
但是这样做是 \(\mathcal{O} (nW^2)\) 的, 考虑优化
我们注意到 $ f_{i - w - 1, k} - AP_i \cdot (j - k) = f_{i - w - 1, k} - AP_i \cdot k + (AP_i \cdot j)$ 这个形式是可以单调队列优化的
于是解决了这个问题
总结
善于设计状态
常见的单调队列优化