CF1234F
高维前缀和板子。
高维前缀和一般用于求解子集问题,其本质就是一位一位处理。
转化一下题目发现是求满足 \(a_i\) & \(a_j = 0\) 的 \(a_i\) | \(a_j\) 中二进制 \(1\) 的个数最大值。
\(a_i\) & \(a_j = 0\) 就相当于 \(a_j\) 是 \(a_i\) 补集的子集,所以对于每个 \(a_i\),我们都要求出它的补集的子集的 \(1\) 的个数的最大值,这个东西就是高维前缀和板子。
P11455
首先每种颜色都互不干扰,所以我们对于每个颜色分别处理,最后答案加在一起。
对于某种颜色,有种暴力的贪心就是从左往右扫一遍,因为还要枚举 \(x\),所以这种做法的总时间复杂度是 \(O(n^2)\)