atcoder#AGC033D. [AGC033D] Complexity

[AGC033D] Complexity

配点 : 10001000

問題文

この問題のメモリ制限はいつもと異なります。注意してください。

各マスが白か黒で塗られている長方形状のマス目に対して、複雑さ を以下のように定めます。

  • すべてのマスが白、もしくはすべてのマスが黒のとき、複雑さは 00 である。
  • そうでないとき、マス目のいずれかの辺に平行な直線でマス目を 22 つのマス目に分割し、それらのマス目の複雑さを c1c_1, c2c_2 とする。 分割の仕方は複数ありうるが、それらにおける max(c1,c2)\max(c_1, c_2) の最小値を mm として、このマス目の複雑さを m+1m+1 とする。

実際に縦 HH 行、横 WW 列の白黒に塗られたマス目が与えられます。 マス目の状態は A11A_{11} から AHWA_{HW}HWHW 個の文字で表されており、 上から ii 行目、左から jj 列目にあるマスが黒色のとき AijA_{ij}#、 上から ii 行目、左から jj 列目にあるマスが白色のとき AijA_{ij}. となっています。

与えられたマス目の複雑さを求めてください。

制約

  • 1H,W1851 \leq H,W \leq 185
  • AijA_{ij}# または .

入力

入力は以下の形式で標準入力から与えられる。

HH WW

A11A_{11}A12A_{12}......A1WA_{1W}

::

AH1A_{H1}AH2A_{H2}......AHWA_{HW}

出力

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

3 3
...
.##
.##
2

11 列目と 22 列目の境目で 22 つのマス目に分割してみます。 11 列目だけからなるマス目の複雑さは 0022,33 列目からなるマス目の複雑さは 11 なので、 このマス目の複雑さは 22 以下だと分かります。

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