atcoder#AGC033D. [AGC033D] Complexity
[AGC033D] Complexity
配点 : 点
問題文
この問題のメモリ制限はいつもと異なります。注意してください。
各マスが白か黒で塗られている長方形状のマス目に対して、複雑さ を以下のように定めます。
- すべてのマスが白、もしくはすべてのマスが黒のとき、複雑さは である。
- そうでないとき、マス目のいずれかの辺に平行な直線でマス目を つのマス目に分割し、それらのマス目の複雑さを , とする。 分割の仕方は複数ありうるが、それらにおける の最小値を として、このマス目の複雑さを とする。
実際に縦 行、横 列の白黒に塗られたマス目が与えられます。
マス目の状態は から の 個の文字で表されており、
上から 行目、左から 列目にあるマスが黒色のとき は #
、
上から 行目、左から 列目にあるマスが白色のとき は .
となっています。
与えられたマス目の複雑さを求めてください。
制約
- は
#
または.
入力
入力は以下の形式で標準入力から与えられる。
出力
与えられたマス目の複雑さを出力せよ。
3 3
...
.##
.##
2
列目と 列目の境目で つのマス目に分割してみます。 列目だけからなるマス目の複雑さは 、, 列目からなるマス目の複雑さは なので、 このマス目の複雑さは 以下だと分かります。
6 7
.####.#
#....#.
#....#.
#....#.
.####.#
#....##
4