AT_arc081_d [ARC081F] Flip and Rectangles

题目描述

有一个 $H \times W$ 的网格。网格中的每个格子被涂成黑色或白色。从上到下第 $i$ 行,从左到右第 $j$ 列的格子,如果 $S_i$ 的第 $j$ 个字符是 `#`,那么该格子是黑色;如果是 `.`,那么是白色。 Sunnuke 君可以任意次数地进行如下操作: - 任选网格中的某一行或某一列,将该行或该列的所有格子的颜色反转(即,将黑色格子变成白色,将白色格子变成黑色)。 在操作结束后,Sunnuke 君会选择网格中的一个长方形。此时,所选长方形中的所有格子必须都是黑色。 若操作合理,Sunnuke 君能选择的长方形的最大面积是多少?

输入格式

输入以如下格式从标准输入中给出。 > $H$ $W$ > $S_1$ > $S_2$ > $\vdots$ > $S_H$

输出格式

输出 Sunnuke 君能选择的最大长方形的面积。

说明/提示

### 限制条件 - $2 \leq H \leq 2000$ - $2 \leq W \leq 2000$ - $|S_i| = W$ - $S_i$ 仅由 `#` 和 `.` 组成。 ### 样例说明 1 如图所示,如果将第 1 行和第 3 列进行反转,则可以选出一个 $2 \times 3$ 的长方形。 ![](https://atcoder.jp/img/arc081/2995c3921ed4dffc8ee528b63b9c6118.png) 由 ChatGPT 5 翻译