偶像的演唱会

偶像的演唱会

Description

你被请来参加偶像的全国巡回演唱会,并且你的任务是带领大家一起为偶像打call!但是观众中有一小撮反串黑粉,你的目标是带领真爱粉用爱来感♂化黑粉,保证演唱会的成功进行。

演唱会观众区域由一个 n x m 的矩阵表示, 在这个矩阵中:

  • “.” 表示空白位置
  • “#” 表示障碍物
  • “x” 表示黑粉所在的位置

你将派出k名真爱粉来压制黑粉。真爱粉可以位于空白位置或者与黑粉所在的位置重合。所有的真爱粉所在的位置必须形成 一个连通块 。所求的连通块必须覆盖所有的黑粉位置。并且真爱粉的 连通块 只能由水平方向和/或竖直方向上相邻的其它真爱粉连接形成。

求最少需要多少名真爱粉来感化黑粉。如果不能完成,输出-1。

Input

第一行有两个整数n和m。代表矩阵有n行m列。
接下来有一个n行m列的字符矩阵,代表演唱会的观众区域。

保证矩阵中至少有一个“x“字符。

Output

输出一个整数k,代表最少需要多少真爱粉才可以压制黑粉。

如果无解,输出-1。

Sample

Sample 1

Input

3 3
...
x.x
...

Output

3

Explanation

...
OOO
...

最少派出3名真爱粉来覆盖所有黑粉所在的位置。
(“O” 代表真爱粉,下同)

Sample 2

Input

3 3
...
x#x
...

Output

5

Explanation

最少派出5名真爱粉来覆盖所有黑粉所在的位置。

可行解有:

...
O#O
OOO

或者

OOO
O#O
...

Sample 3

Input

3 3
.#.
x#x
.#.

Output

-1

Explanation

无法形成一个连通块来覆盖所有黑粉。

Sample 4

Input

3 4
.#.#
xxx.
.#.x

Output

5

Limitation

1 <= n, m <= 32

  • TimeLimit: 1s
  • MemLimit: 256MB

Hint

Follow up problem for : https://leetcode-cn.com/problems/cut-off-trees-for-golf-event

Source

无授权禁止转载

信息

ID
1001
难度
9
分类
生成树 点击显示
标签
(无)
递交数
14
已通过
1
通过率
7%
上传者