-->
当前位置:首页 > 题库 > 正文内容

编程题:模拟炸弹人

Luz2年前 (2022-09-02)题库456
《炸弹人》是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







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。