atcoder#ABC296H. [ABC296Ex] Unite

[ABC296Ex] Unite

题目描述

N N M M 列のマス目があり、各マスは黒または白で塗られています。 ここで、少なくとも 1 1 つのマスが黒く塗られています。
最初のマス目の状態は N N 個の長さ M M の文字列 S1,S2,,SN S_1,S_2,\ldots,S_N で与えられます。
マス目の上から i i 行目 (1 i N) (1\leq\ i\leq\ N) かつ左から j j 列目 (1 j M) (1\leq\ j\leq\ M) のマスは、 Si S_i j j 文字目が # であるとき黒く、. であるとき白く塗られています。

高橋君の目標は白く塗られたいくつかのマス (0 0 個でもよい ) を新しく黒く塗ることによって、黒く塗られたマス全体が 連結 になるようにすることです。 高橋君が目標を達成するために新しく塗る必要のあるマスの個数としてあり得る最小値を求めてください。

ただし、黒く塗られたマス全体が 連結 であるとは、黒く塗られたどの 2 2 つのマスの組 (S,T) (S,T) についても、 正整数 K K と長さ K K の黒く塗られたマスの列 X=(x1,x2,,xK) X=(x_1,x_2,\ldots,x_K) であって、x1=S x_1=S , xK=T x_K=T かつ任意の 1 i K1 1\leq\ i\leq\ K-1 について xi x_i xi+1 x_{i+1} が辺を共有しているようなものが存在することをいいます。
なお、問題の制約下でつねに、高橋君が目標を達成するような塗り方が存在することが証明できます。

输入格式

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

N N M M S1 S_1 S2 S_2 \vdots SN S_N

输出格式

黒く塗られたマス全体が連結になるようにするために、新しく塗る必要のあるマスの個数としてあり得る最小値を出力せよ。

题目大意

zjh 有一个 n×mn\times m 的字符矩阵,其中至少有一个元素是 #

现在 zjh 可以把一些 . 更改为 #,输出他最少要修改多少次才能使得所有 # 四联通。

Translated by

https://www.luogu.com.cn/user/399150

3 5
...#.
.#...
....#
3
3 3
###
###
###
0
10 1
.
#
.
.
.
.
.
.
#
.
6

提示

制約

  • 1  N  100 1\ \leq\ N\ \leq\ 100
  • 1 M  7 1\leq\ M\ \leq\ 7
  • N,M N,M は整数
  • Si S_i #. のみからなる長さ M M の文字列
  • 与えられるマス目において、黒く塗られたマスが 1 1 つ以上存在する。

Sample Explanation 1

最初、マス目の状態は次のようになっています。ここで、上から i i 行目、左から j j 列目のマスを (i,j) (i,j) で表しています。 ![](https://img.atcoder.jp/abc296/d5b5d945798a02840b8add26271fe2a5.png) ここで、例えば、高橋君が (2,3),(2,4),(3,4) (2,3),(2,4),(3,4) 3 3 つのマス(下図の赤いマス)を新しく黒く塗ったとします。 ![](https://img.atcoder.jp/abc296/d2d0f1745af0dc309341f96dbd83e717.png) このとき、最初から黒く塗られていたマスと新しく黒く塗られたマスは合わせて次のようになり、黒く塗られたマス全体は連結となります。 ![](https://img.atcoder.jp/abc296/76bebc05c2d7c5240151b534ba30f29b.png) 2 2 つ以下のマスを新しく黒く塗ることで黒く塗られたマス全体を連結にすることはできないため、3 3 が答えとなります。 白く塗られたマス全体を連結にする必要はないことに注意してください。

Sample Explanation 2

最初から全てのマスが黒く塗られている可能性もあります。