首页 > 其他分享 >MoreHolidays

MoreHolidays

时间:2023-06-16 13:23:26浏览次数:52  
标签:端的 位置 修改 MoreHolidays 最优 引理

[ABC300F] More Holidays

问题关键:发现并证明一下引理:

  • 一定存在最优解最左端的 o 在 \([1,n]\)。

考虑最优解最左端的 o 不在 \([1,n]\),那么修改的 x 位置肯定大于 \(n\),那么对于每个修改的位置,将修改的下标 \(-n\)(即原来修改 \(i\) 处的 x,现在修改 \(i-n\) 处的 x),因为是循环串,所以这样操作一定是可以进行的。然后又因为这个 o 的左端不能延伸,新串的左右相对位置并没有变(即对于修改的位置,左右情况是完全没有发生变化的),所以这样的操作只要一直进行,那么最优解最左端的 o 一定能跑到 \([1,n]\)。

有了这个引理,那么问题就好解决了。我们直接枚举起点,看终点最远能延伸到哪里。当然是尽量穿过,直到这段区间内的 x 个数超过 \(k\) 为止。这个还是好处理的,主要考虑零散的部分和整段的部分,零散的部分可以用前缀和处理当前位置到末尾的 x 的个数,然后中间的部分直接循环节搞定,最后多出来的部分再使用前缀和搞定。

标签:端的,位置,修改,MoreHolidays,最优,引理
From: https://www.cnblogs.com/wscqwq/p/17485308.html

相关文章