CF939F Cutlet
比较好的 DP 题,一开始想歪了。
考虑设 \(f_{i, j}\) 为前 \(i\) 秒反面烤了 \(j\) 秒最少翻的次数,为什么这样定义能,因为可以将 DP 数组转移中 \(1\) 的偏移量给搞掉。
转移显然分两种,一种是 \(f_{i, j} = f_{i - 1, j}\),一种是 \(f_{i, j} = f_{i - 1,i - j} + 1\)。
考虑只保留 \(r_i\) 的 \(i\) 如何转移,发现一段区间最多只会翻两次,不然没有意义,考虑枚举段长进行转移,用个线段树维护区间 \(\min\) 即可。

浙公网安备 33010602011771号