CF1208F Bits And Pieces

题意:给定 个数的数组 ,找到 ,使得 最大。

,时限


  • 子问题ARC100C Or Plus Max

    题意:给出长度为 的序列 ,标号为

    对于每个,求出最大的

    ,时限

首先对于每个 求出 的数对的最大值和次大值,记为数对 。利用高维前缀和即可得到。

的数对的答案记为

合并,即可得到 的答案。(实际上也可以对单个询问只合并


  • 原问题

考虑和值域相关的做法。

首先对答案按位贪心,转化为判定问题 : 是否存在

对于 找到 并使得 最大,记这个最大值为 ,若找不到则为

然后枚举每个 尝试得到答案。若给定 要求找一个 使得 ,只需

若有 的超集和,就可以 判定了。 的超集和容易利用高维前缀和预处理。(和上一题类似)

复杂度为