Loading

P9180 [COCI2022-2023#5] Slastičarnica

\(\text{solution}\)

首先我们考虑设状态 \(f_{i, j, k}\) 表示到了 \([i, j]\) 这个区间是否可以用到 \(k\) 这个操作,不难发现转移是平凡的,你甚至可以用各种数据结构,用 ST 表做到 \(O(n^3)\)。、

但是发现距离 \(O(n^2)\) 还很遥远,状态的转移已经无法再次优化了,这个时候我们就要仔细思考状态的一些特质了。

我们发现,如果删掉的前缀过短行,那么删掉的前缀过长就更行了,这是一个很优美的性质!意味着我们 dp 数组中有若干个连续段都是 \(1\),我们可以记录这些 \(1\) 最后出现的位置,我们记 \(f_{i, j}\) 表示到第 \(i\) 次操作,左端点为 \(j\),右端点最远能为多少,如果无法转移就输出。

还有一点,\(q \le 2 \times 10^5\) 明显是假的,我们可以对 \(n\)\(\min\)

posted @ 2024-08-22 09:16  Alexande  阅读(18)  评论(0)    收藏  举报