AT_agc045_c [AGC045C] Range Set
设 \(A \ge B\),那么我们每次操作就可以让一个 \(\ge A\) 的段为 \(0\),\(\ge B\) 的段为 \(1\)。
考虑最后的充要条件是,存在一个 \(\ge A\) 的子串,满足其中所有 \(1\) 的段长度都 \(\ge B\),为什么呢?因为这是最后一步,在这一步之前,我们可以任意组合,但最后一步必须在 \(A\) 的基础上覆盖,所以有这个结论。一般这种情况就只能倒着做或者弱化操作限制,或者合并操作,这个题就是三个都用到了。
然后设计一个简单 DP 用前缀和优化即可。

浙公网安备 33010602011771号