编程题:模拟炸弹人
《炸弹人》是HUDSON出品的一款ACT类型游戏,经典的第一作登陆在FC版本,游戏于1983年发行。游戏具体操作是一个机器人放置炸弹来炸死敌人,但也可以炸死自己,还有些增强威力与技能道具增加了游戏的可玩性。
接下来我们就对《炸弹人》进行一次简化模拟:
首先我们需要一个 N×M 大小的矩阵来存放地图,矩阵中 '\*' 代表没有点燃的炸弹,‘0’代表空地,玩家可以自定义炸弹的威力为 p (由于我们是简化模拟,所以 p 只会取 1 或者 2 );像《炸弹人》一样,炸弹可以引发自己上、下、左、右(**斜角不算**)各 p 格范围内产生爆炸,并且爆炸可以产生连锁反应,问至少需要进行几次引爆才可以让所有的炸弹都爆炸。
例如:
在 5×7 的矩阵
![1.png](~/bd279156-ea13-46be-beab-7271123059ac.png)
中,当玩家把炸弹的威力 p 设为 1 时至少需要进行 4 次引爆,
而当玩家把炸弹的威力 p 设为 2 时至少需要进行 3 次引爆。
### 输入格式:
在第一行定义矩阵的大小 $$n,m,1 \le n,m \le 10^3$$ 和炸弹的威力 $$p, p \in \{1,2\}$$,数字之间用空格隔开
随后 $$n$$ 行是由‘0’和‘\*’两种字符组成的 $$n \times m$$ 矩阵,字符之间用空格隔开。
### 输出格式:
在一行中输出至少需要进行几次引爆可以让所有的炸弹都爆炸。
### 输入样例1:
in
5 7 1
0 0 * * 0 0 0
0 0 * 0 0 0 0
0 0 0 0 0 * 0
0 * * 0 0 0 0
0 0 0 * 0 0 0
### 输出样例1:
out
4
### 输入样例2:
in
5 7 2
0 0 * * 0 0 0
0 0 * 0 0 0 0
0 0 0 0 0 * 0
0 * * 0 0 0 0
0 0 0 * 0 0 0
### 输出样例2:
out
3
答案:若无答案欢迎评论
接下来我们就对《炸弹人》进行一次简化模拟:
首先我们需要一个 N×M 大小的矩阵来存放地图,矩阵中 '\*' 代表没有点燃的炸弹,‘0’代表空地,玩家可以自定义炸弹的威力为 p (由于我们是简化模拟,所以 p 只会取 1 或者 2 );像《炸弹人》一样,炸弹可以引发自己上、下、左、右(**斜角不算**)各 p 格范围内产生爆炸,并且爆炸可以产生连锁反应,问至少需要进行几次引爆才可以让所有的炸弹都爆炸。
例如:
在 5×7 的矩阵
![1.png](~/bd279156-ea13-46be-beab-7271123059ac.png)
中,当玩家把炸弹的威力 p 设为 1 时至少需要进行 4 次引爆,
而当玩家把炸弹的威力 p 设为 2 时至少需要进行 3 次引爆。
### 输入格式:
在第一行定义矩阵的大小 $$n,m,1 \le n,m \le 10^3$$ 和炸弹的威力 $$p, p \in \{1,2\}$$,数字之间用空格隔开
随后 $$n$$ 行是由‘0’和‘\*’两种字符组成的 $$n \times m$$ 矩阵,字符之间用空格隔开。
### 输出格式:
在一行中输出至少需要进行几次引爆可以让所有的炸弹都爆炸。
### 输入样例1:
in
5 7 1
0 0 * * 0 0 0
0 0 * 0 0 0 0
0 0 0 0 0 * 0
0 * * 0 0 0 0
0 0 0 * 0 0 0
### 输出样例1:
out
4
### 输入样例2:
in
5 7 2
0 0 * * 0 0 0
0 0 * 0 0 0 0
0 0 0 0 0 * 0
0 * * 0 0 0 0
0 0 0 * 0 0 0
### 输出样例2:
out
3
答案:若无答案欢迎评论