[ABC228F] Stamp Game
Solution
有显然一点,对于 \(h2>h1\) 它的贡献与 \(h2=h1\) 是相同的,因此对于 \(h2>h1\) 我们令 \(h2\gets h1\)。对于 \(w2\) 和 \(w1\) 同理。如此我们使得 \(h2\le h1,w2\le w1\)。
现在我们设
\[A_{i,j} = \sum_{x=i-h1+1}^i \sum_{y=j-w1+1}^j a_{i,j}\\
B_{i,j} = \sum_{x=i-h2+1}^i \sum_{y=j-w2+1}^j a_{i,j}\\
\]
分别表示小 A 选择的矩形右下角为 \((i,j)\) 的数的和,小 B 选择的矩形右下角为 \((i,j)\) 的数的和。两数组据可以用二维前缀和快速求得。
那么答案为
\[\max_{1\le i\le n,1\le j\le m} \{ A_{i,j}-\max_{\substack{i-h1+1\le x\le i\\j-w1+1\le y\le j}} \{ B_{x,y}\}\}\\
\]
考虑优化求 \(\max_\limits{i-h1+1\le x\le i,j-w1+1\le y\le j} \{ B_{x,y}\}\) 的过程。
容易发现这是一个二维滑动窗口,用单调队列解即可。

浙公网安备 33010602011771号