P9871 [NOIP2023] 天天爱打卡 线段树优化 DP
我们设 \(f_{i}\) 表示只考虑前 \(i\) 天的最大贡献,然后我们可以轻松列出一个 \(O(n^2m)\) 的转移式。
但是我们发现有用的状态只有 \(m\) 个,中间的状态实际上可以省略,于是你将复杂度优化到 \(O(m^3)\)。
你又注意到其中有一个数区间的过程可以用线段树优化,于是你将复杂度优化到了 \(O(m^2 \log m)\)。
你又观察你的 DP 转移式,发现贡献类似于一个等差数列,于是你每次把贡献加上,产生完贡献后再减去,复杂度就是 \(O(m \log m)\) 的了。

浙公网安备 33010602011771号