【刷题笔记】p2217 分割矩阵

思路

首先注意到要求矩阵和,想到的肯定是二位前缀和。

  • \(S_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(A\),宽为 \(B\) 的矩阵和。
  • \(s_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(C\),宽为 \(D\) 的矩阵和。

然后再来考虑一个问题,如果我们每次都枚举大矩形的右下角,然后再枚举合法的小矩形的右下角,那时间复杂度肯定会爆炸。
于是我们想到了神奇的单调队列,因为这东西很像二维单调队列。

  • \(Q_{i,j}\) 表示的是从 \((i - A + 1,j)\)\((i, j)\)\(s\) 数组的最小值。
  • \(q_{i,j}\) 表示的是以 \((i,j - B + 1)\)\((i,j)\)\(Q\) 数组的最小值。
    最后答案就是 \(S_{i,j}\) 减去 \(q_{i,j}\) 的差的最大值。
posted @ 2025-06-09 21:53  GuoSN0410  阅读(5)  评论(0)    收藏  举报