P9747 「KDOI-06-S」签到题
发现操作并不会使一个存在的二进制位消失,所以最后的答案为区间的或。
令这个数为 ,首先序列必须存在 。
注意到当 出现次数 时,必然有解,可以通过先将这两个数弄成相邻的再左右扩展得到。
现在讨论 出现次数为 的情况,我们要把这个数复制成两个数,然后发现,当区间内有不与这个数位置有交的子区间按位或和等于这个数时,满足条件。
发现这东西最优时是一个前缀或一个后缀,通过操作 多弄出一个 。
于是一个区间合法,当且仅当:找到任意一个值为 的位置 ,要求 或者 的或和为 。
后面的部分就是简单的分类讨论数点了。
本文来自博客园,作者:蒟蒻orz,转载请注明原文链接:https://www.cnblogs.com/orzz/p/18121916