P9747 「KDOI-06-S」签到题

发现操作并不会使一个存在的二进制位消失,所以最后的答案为区间的或。

令这个数为 mxmx,首先序列必须存在 mxmx

注意到当 mxmx 出现次数 2\ge 2 时,必然有解,可以通过先将这两个数弄成相邻的再左右扩展得到。

现在讨论 mxmx 出现次数为 11 的情况,我们要把这个数复制成两个数,然后发现,当区间内有不与这个数位置有交的子区间按位或和等于这个数时,满足条件。

发现这东西最优时是一个前缀或一个后缀,通过操作 (i,r1,i+1,r)(i,r-1,i+1,r) 多弄出一个 mxmx

于是一个区间合法,当且仅当:找到任意一个值为 mxmx 的位置 ii,要求 [1,i1][1,i−1] 或者 [i+1,n][i+1,n] 的或和为 mxmx

后面的部分就是简单的分类讨论数点了。

posted @ 2023-11-05 11:59  蒟蒻orz  阅读(7)  评论(0编辑  收藏  举报  来源