CF1208F Bits And Pieces

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

,,时限。


  • 子问题:ARC100C Or Plus Max

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

    对于每个,求出最大的 。

    ,时限 。

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

将 的数对的答案记为 。

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


  • 原问题

考虑和值域相关的做法。

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

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

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

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

复杂度为 。