小星是参加防疫的一名志愿者,每天都为在家中被隔离的居民们送蔬菜包。他把每层楼看成一个n*n的矩阵。小星需要将蔬菜包送到位于m层的居民手中,小星想请你帮他计算一下,他能否成功将蔬菜送达。如果能则需要的最少体力,如果不能则输出No。
Time Limit | $1$ 秒/Second(s) | Memory Limit | $512$ 兆字节/Megabyte(s) |
提交总数 | $5$ | 正确数量 | $4$ | "
裁判形式 | 标准裁判/Standard Judge | 我的状态 | 尚未尝试 |
难度 | 分类标签 |
小星是参加防疫的一名志愿者,每天都为在家中被隔离的居民们送蔬菜包。他把每层楼看成一个n*n的矩阵。小星需要将蔬菜包送到位于m层的居民手中,小星想请你帮他计算一下,他能否成功将蔬菜送达。如果能则需要的最少体力,如果不能则输出No。
第一行输入2个整数m(1<=m<=30)和n(1<=n<=30)。表示给出m层楼,每层楼大小为n*n。
接下来m个输入n*n的矩阵表示第m层楼的地图
每层楼至多2个楼梯,第一层楼给出一个起点,以及至多2个楼梯,最后一层楼给出1个终点,中间每层楼的起点为上一层楼梯的位置,上楼不消耗体力。
小星可以消耗3体力可以在一个方向上行动2格并穿过第一格上的障碍物
可以消耗1体力行动1格或2格,可以只走1格,也可以走2格(可以转弯)
#表示障碍物
. 表示平地
S表示起点
E表示居民的位置
U表示楼梯
可以回到点内时输出一个整数表示送到目标居民家中所消耗的最小体力,无法送达则输出No。
3 5
##...
S#.U.
##...
.....
.....
..###
..#S#
..###
....#
U...#
.....
.####
....E
.####
S....
12
样例3说明:因为样例中第三层S往可以通行方向(左侧或上侧)都有两个障碍物,穿过第一个后没有落脚点,所以无法穿过障碍物到达E。
本题记录 | 用 户(点击查看用户) | 运行号(点击购买题解) | 时 间 |
---|---|---|---|
算法最快[$5 $ms] | 树状数组 | 857195 | 2022-05-16 00:21:05 |
内存最少[$2456 $KB] | 332211 | 862433 | 2022-05-30 15:56:59 |
第一AC | 树状数组 | 857195 | 2022-05-16 00:21:05 |
第一挑战 | 树状数组 | 857195 | 2022-05-16 00:21:05 |
竞赛编号 | 竞赛名称 | 竞赛时间 | 访问比赛 |
---|