在这个问题中,小塔发现他的房间里进水了,水位不断上涨。他需要通过一些没有被水淹没的箱子移动,以安全地到达电源处。每个小方格的水位上升与箱子的高度有关,只有当水位低于箱子高度时,小塔才能通过该格。输入给出初始水深、房间的格局以及小塔和电源的位置,输出则是小塔从起点到电源的路径长度和每一步的位置坐标。如果无法到达电源,小塔则留在原地。通过这个问题,我们可以帮助小塔设计一条安全的路线,以确保他能顺利关闭电源。
考虑记录状态:(x,y,step) 代表在位置x,y并且已经走了step步状态下是否合法。
fa[x][y][step] 记录这个状态下的上一步是哪里来的。
小明在值班时发现房间进水,水面仍在持续上涨。为防止电器遇水,他需要尽快从当前所在方格移动到电源所在方格并关闭电源。房间可以看作一个 n 行 m 列的矩形方格图。每个方格中可能放置一个箱子,也可能没有箱子;小明、电源以及箱子都恰好位于方格中央。
初始时水面深度为 h0,每经过一个单位时间水面深度增加 1。小明每个单位时间可以移动到上、下、左、右相邻的一个方格。只有当目标方格当前未被水淹没时,他才能进入该方格。一个方格是否被淹没由其中箱子的高度决定:设某个方格内箱子的高度为 h,若某一时刻水面深度 H 满足 H≥h,则该方格被淹没;若 h>H,则该方格仍可通行。数字 0 表示该方格没有箱子,其高度视为 0。小明初始所在的方格与电源所在方格始终安全,不会被水淹没。
请为小明找到一条从起点到电源的安全路线。若不存在这样的路线,则小明应停留在起点。
第一行包含一个整数 h0,表示起始水面深度。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册