[AGC033D] Complexity

题意翻译

- 给定一个 $N$ 行 $M$ 列的字符矩阵。 - 我们定义一个字符矩阵的凌乱度为: - 若这个字符矩阵中所有字符都相同,则凌乱度为 $0$。 - 否则,则考虑所有的沿水平或者竖直方向的直线,将字符矩阵分成两个不为空的部分,设两个部分的凌乱度分别为 $a$ 和 $b$,则整个字符矩阵的凌乱度为 $\max(a,b)+1$ 的最小值。 - 请你求出,给出的字符矩阵的凌乱度是多少。 - $1 \leq N, M \leq 185$。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc033/tasks/agc033_d **この問題のメモリ制限はいつもと異なります。注意してください。** 各マスが白か黒で塗られている長方形状のマス目に対して、 **複雑さ** を以下のように定めます。 - すべてのマスが白、もしくはすべてのマスが黒のとき、複雑さは $ 0 $ である。 - そうでないとき、マス目のいずれかの辺に平行な直線でマス目を $ 2 $ つのマス目に分割し、それらのマス目の複雑さを $ c_1 $, $ c_2 $ とする。 分割の仕方は複数ありうるが、それらにおける $ \max(c_1,\ c_2) $ の最小値を $ m $ として、このマス目の複雑さを $ m+1 $ とする。 実際に縦 $ H $ 行、横 $ W $ 列の白黒に塗られたマス目が与えられます。 マス目の状態は $ A_{11} $ から $ A_{HW} $ の $ HW $ 個の文字で表されており、 上から $ i $ 行目、左から $ j $ 列目にあるマスが黒色のとき $ A_{ij} $ は `#`、 上から $ i $ 行目、左から $ j $ 列目にあるマスが白色のとき $ A_{ij} $ は `.` となっています。 与えられたマス目の複雑さを求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ H $ $ W $ $ A_{11} $$ A_{12} $$ ... $$ A_{1W} $ $ : $ $ A_{H1} $$ A_{H2} $$ ... $$ A_{HW} $

输出格式


与えられたマス目の複雑さを出力せよ。

输入输出样例

输入样例 #1

3 3
...
.##
.##

输出样例 #1

2

输入样例 #2

6 7
.####.#
#....#.
#....#.
#....#.
.####.#
#....##

输出样例 #2

4

说明

### 制約 - $ 1\ ≦\ H,W\ ≦\ 185 $ - $ A_{ij} $ は `#` または `.` ### Sample Explanation 1 $ 1 $ 列目と $ 2 $ 列目の境目で $ 2 $ つのマス目に分割してみます。 $ 1 $ 列目だけからなるマス目の複雑さは $ 0 $、$ 2 $,$ 3 $ 列目からなるマス目の複雑さは $ 1 $ なので、 このマス目の複雑さは $ 2 $ 以下だと分かります。