AT_agc033_d [AGC033D] Complexity
题目描述
**本题的内存限制与通常不同,请注意。**
对于一个每个格子都被涂成黑色或白色的矩形网格,我们定义其**复杂度**如下:
- 如果所有格子都是白色,或者所有格子都是黑色,则复杂度为 $0$。
- 否则,可以用一条与网格边平行的直线将网格分成两个部分,分别记这两个部分的复杂度为 $c_1$、$c_2$。分割方式可能有多种,取所有分割方式中 $\max(c_1,\ c_2)$ 的最小值为 $m$,则该网格的复杂度为 $m+1$。
现在给定一个高为 $H$ 行、宽为 $W$ 列的黑白网格。网格的状态由 $A_{11}$ 到 $A_{HW}$ 共 $HW$ 个字符表示。第 $i$ 行第 $j$ 列的格子如果是黑色,则 $A_{ij}$ 为 `#`,如果是白色,则 $A_{ij}$ 为 `.`。
请你求出给定网格的复杂度。
输入格式
输入以如下格式从标准输入读入:
> $H$ $W$
> $A_{11}$ $A_{12}$ $...$ $A_{1W}$
> $:$
> $A_{H1}$ $A_{H2}$ $...$ $A_{HW}$
输出格式
输出给定网格的复杂度。
说明/提示
## 限制
- $1\leq H,W\leq 185$
- $A_{ij}$ 为 `#` 或 `.`
## 样例解释 1
可以尝试在第 $1$ 列和第 $2$ 列之间分割网格。只包含第 $1$ 列的网格复杂度为 $0$,只包含第 $2$、$3$ 列的网格复杂度为 $1$,因此整个网格的复杂度不超过 $2$。
由 ChatGPT 4.1 翻译