A7204 | 寻找小马
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
高贵的马儿可以驱除体内的一切外力。
传说中蕴含强大力量的马符咒失落在一张古老的地图里。皓仔决定出发寻找它。
地图可以看作一个由字符组成的二维网格。皓仔的起点坐标为 $(a,b)$,马符咒的位置为 $(c,d)$。网格中有一些障碍物,皓仔无法进入障碍物所在的格子。
皓仔手上有一份流传下来的路线指令。每条指令由一个方向字符和一个步数组成:方向字符为
L、R、U、D 之一,代表向上,下,左,右,四个方向进行移动,步数为一个正整数。皓仔会按顺序执行这些移动指令。执行一条指令(方向为 $dir$,步数为 $k$)的规则如下:
- 皓仔尝试在方向 $dir$ 上移动最多 $k$ 步;
- 如果下一步会走出地图边界,或进入障碍物
#,则本条指令会提前结束,皓仔停在当前格子;- 如果在任意时刻(包括执行指令的中途或结束后),皓仔到达马符咒所在位置 $(c,d)$,则视为成功到达。
请你判断皓仔是否能够到达马符咒的位置,输出
YES 或 NO。输入格式
第一行输入两个整数 $n,m$,表示地图有 $n$ 行 $m$ 列。
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,表示地图:
-
-
接下来一行输入四个整数 $a,b,c,d$,分别表示起点坐标与马符咒坐标(均为$0$开始的行列坐标)。
下一行输入一个整数 $q$,表示路线指令条数。
接下来 $q$ 行,每行输入一个方向字符 $dir$ 和一个整数 $k$,表示一条移动指令。
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,表示地图:
-
. 表示空地-
# 表示障碍物接下来一行输入四个整数 $a,b,c,d$,分别表示起点坐标与马符咒坐标(均为$0$开始的行列坐标)。
下一行输入一个整数 $q$,表示路线指令条数。
接下来 $q$ 行,每行输入一个方向字符 $dir$ 和一个整数 $k$,表示一条移动指令。
输出格式
如果皓仔能够到达马符咒的位置,输出一行
YES;否则输出一行 NO。输入输出样例
输入 #1
5 6 ..#... ...... ##..#. ...... ...#.. 0 0 3 5 4 R 10 D 3 R 10 U 1
输出 #1
NO
输入 #2
3 3 ... .#. ... 0 0 2 2 4 R 2 D 2 R 2 D 2
输出 #2
YES
【数据范围】
对于所有测试数据保证:
- $1\le n,m\le 2000$
- $0\le a,c<n$,$0\le b,d<m$
- $1\le q\le 2\times 10^5$
- 每条指令步数 $1\le k\le 10^9$
- 保证所有指令步数之和不超过 $5\times 10^6$
- 保证起点和马符咒位置都不在障碍物上(对应格子一定是
对于所有测试数据保证:
- $1\le n,m\le 2000$
- $0\le a,c<n$,$0\le b,d<m$
- $1\le q\le 2\times 10^5$
- 每条指令步数 $1\le k\le 10^9$
- 保证所有指令步数之和不超过 $5\times 10^6$
- 保证起点和马符咒位置都不在障碍物上(对应格子一定是
.)
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?