编程题
### 问题描述 小郑最近迷上了泡泡堂这款经典游戏,泡泡堂是一款经典的多人在线射击游戏,游戏中玩家扮演可爱的角色,通过放置泡泡炸弹来击败对手,最后存活下来的玩家将获胜。泡泡堂具有简单易学的操作和快节奏的游戏节奏,同时还有丰富的地图选择和各种道具、技能供玩家使用,这使得游戏变得充满策略性和竞争性,吸引了大量的玩家参与。 在游戏过程中,小郑发现预判炸弹爆炸的时间以及范围非常重要,所以他在这方面下足了功夫。 现在,他又发现了另一个问题,即使他知道了爆炸的时间及范围,他也有可能无法在规定的时间内移动到安全的位置。 小郑知道自己无法在同一时间内承受这么多运算量,所以他把问题抛给了你。 小郑每次移动只能向上下左右中的一个方向走一格。 假设小郑每到达一个安全状态,所有炸弹都会直接爆炸,并转换为下一个状态。 小郑已经知道了即将到来的 $k$ 次爆炸的具体情况,你能帮小郑算出他安全经过所有爆炸状态所需的最少移动次数吗? ### 输入格式 第一行包含两个整数,代表地图大小 $N$ 以及爆炸次数 $K$。 第二行同样包含两个整数,代表小郑的初始位置 $x,y$,表示小郑在地图的第 $x$ 行 $y$ 列。 接下来 $K$ 个 $n$ 行 $n$ 列的矩阵(地图),代表爆炸状态。矩阵仅由 $0$ 和 $1$ 构成,$0$ 代表安全区域,$1$ 代表将要被炸到的区域。矩阵中不含空格。 数据保证有解,且在 $N \gt 10$ 的矩阵中 $70$% 以上的数字为 $1$。 ### 输出格式 输出包含 $1$ 个整数,代表小郑安全经过所有爆炸状态所需的最少移动次数。 ### 样例输入 1 ```text 3 3 3 1 000 111 101 111 000 111 111 101 111 ``` ### 样例输出 1 ```text 2 ``` ### 样例输入 2 ```text 3 3 1 1 011 111 111 011 111 111 011 111 111 ``` ### 样例输出 2 ```text 0 ``` ### 样例输入 3 ```text 3 3 2 2 011 111 111 110 111 101 111 111 011 ``` ### 样例输出 3 ```text 6 ``` ### 提示 样例一解释:小郑初始位置在矩阵的左下角,他先向右移动一格,避开第一次爆炸,再向上移动一格到达矩阵中心,便可避开后面的两次爆炸。 ### 评测数据规模 对于所有评测数据,$0 \lt N,K \le 15,0 \lt x,y \le N$,数据保证有解,且在 $N \gt 10$ 的矩阵中 $70$% 以上的数字为 $1$。
查看答案
赣ICP备20007335号-2