一些杂题但可以记录下的。
I P5300 [GXOI/GZOI2019] 与或和
首先我们拆位,然后枚举每一个点 \((i,j)\),考虑将该点作为矩阵的 右下角 的贡献,先考虑 \(AND\),只有矩阵中的值都为 \(1\) 时才造成贡献,所以我们考虑记录 \((i,j)\) 左上方最大全为 \(1\) 的从左到右 单调非严格递减 的图形,形如楼梯,我们可以先记录 \(l_{i,j}\) 表示其左边 最长连续 长度(包含其本身),则为了满足 单调性,我们需要找到矩阵面积最大值,可以用单调栈维护,最后答案即为 \(s_{k,i,j} \times 2^k\) 的和,\(k\) 是拆的位。
\(OR\) 类似,可以发现只有矩阵中的值都为 \(0\) 时才不造成贡献,可以维护这些点,算答案时减去其即为造成贡献的点。
复杂度 \(\mathcal{O}(n^2\log{V})\)。
代码