atcoder#AGC033D. [AGC033D] Complexity

[AGC033D] Complexity

题目描述

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

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

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

実際に縦 H H 行、横 W W 列の白黒に塗られたマス目が与えられます。 マス目の状態は A11 A_{11} から AHW A_{HW} HW HW 個の文字で表されており、 上から i i 行目、左から j j 列目にあるマスが黒色のとき Aij A_{ij} #、 上から i i 行目、左から j j 列目にあるマスが白色のとき Aij A_{ij} . となっています。

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

输入格式

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

H H W W A11 A_{11} A12 A_{12} ... ... A1W A_{1W} : : AH1 A_{H1} AH2 A_{H2} ... ... AHW A_{HW}

输出格式

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

题目大意

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

提示

制約

  • 1  H,W  185 1\ ≦\ H,W\ ≦\ 185
  • Aij A_{ij} # または .

Sample Explanation 1

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