A71356 | 闯迷宫
来源编程题
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
有一个迷宫,迷宫由 n 行 m 列的字符组成,在迷宫中 . 代表该位置可以通过,* 表示该位置是障碍,不能通过;当然,你只能在迷宫中行走,不能走出迷宫。
初始状态下,你在第 r 行,第 c 列的格子中,你可以沿着上下左右四个方向移动到非障碍格中。
在迷宫中移动,还有一个非常特殊的要求,向左最多只能移动不超过 x 格,向右最多只能移动不超过 y 格;上下两个方向没有任何限制。
请问:从出发点开始,最多可以走过多少个格子?(请注意:本题出发点也算在统计的格子总数中)
输入格式
第 1 行有 2 个整数,n 和 m ,分别表示迷宫的行和列数;(1≤n,m≤2000)
第 2 行有 2 个整数 r 和 c ,表示出发点的位于第 r 行第 c 列;(1≤r≤n,1≤c≤m)
第 3 行有 2 个整数 x 和 y ,表示向左和向右最多能够移动的次数;(1≤x,y≤10^9)
接下来有 n 行,每行有 m 个字符,每个字符不是 . 就是 *;
本题确保出发点不是障碍。
输出格式
输出一个整数,表示从起点出发,最多能够走到的格子数(含起点)。
输入输出样例
输入 #1
4 5 3 2 1 2 ..... .***. ...** *....
输出 #1
10
输入 #2
4 4 2 2 0 1 .... ..*. .... ....
输出 #2
7
【样例解释 1】
样例 1 中能够走到的点,用 + 标记出来的结果如下图所示:
+++..
+***.
+++**
*+++.
【样例解释 2】
样例 2 中能够走到的点,用 + 标记出来的结果如下图所示:
.++.
.+*.
.++.
.++.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?