欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1791B.Following Directions
Following Directions
题目描述
Alperen 站在点 。他得到一个长度为 的字符串 ,并进行 次移动。第 次移动如下:
- 如果 ,则向左移动一格;
- 如果 ,则向右移动一格;
- 如果 ,则向上移动一格;
- 如果 ,则向下移动一格。

如果 Alperen 从中心点出发,他可以进行如图所示的四种移动。
在 处有一颗糖果(即 Alperen 起点的右上方各一格)。你需要判断 Alperen 是否曾经过这颗糖果。

第一组测试数据中 Alperen 的路径如图所示。
输入格式
输入的第一行包含一个整数 (),表示测试用例的数量。
每组测试用例的第一行包含一个整数 (),表示字符串的长度。
每组测试用例的第二行包含一个长度为 的字符串 ,由字符 、、 和 组成,表示 Alperen 的移动方式。
输出格式
对于每组测试用例,如果 Alperen 曾经过糖果的位置,输出 "YES"(不带引号);否则输出 "NO"(不带引号)。
你可以用任意大小写输出答案(例如 "yEs"、"yes"、"Yes" 和 "YES" 都会被识别为正确答案)。
说明/提示
在第一组测试数据中,Alperen 的路径为
$$(0, 0) \overset{\texttt{U}} {\to} (0, 1) \overset{\texttt{U}} {\to} (0, 2) \overset{\texttt{U}} {\to} (0, 3) \overset{\texttt{R}} {\to} (1, 3) \overset{\texttt{D}} {\to} (1, 2) \overset{\texttt{D}} {\to} {\color{green} \mathbf{(1, 1)}} \overset{\texttt{L}} {\to} (0, 1)。$$注意,Alperen 不需要最终停在 ,只要在移动过程中经过即可。
在第二组测试数据中,Alperen 的路径为
$$(0, 0) \overset{\texttt{U}} {\to} (0, 1) \overset{\texttt{R}} {\to} {\color{green} \mathbf{(1, 1)}}。$$在第三组测试数据中,Alperen 的路径为
$$(0, 0) \overset{\texttt{R}} {\to} (1, 0) \overset{\texttt{R}} {\to} (2, 0) \overset{\texttt{R}} {\to} (3, 0) \overset{\texttt{U}} {\to} (3, 1) \overset{\texttt{U}} {\to} (3, 2) \overset{\texttt{D}} {\to} (3, 1) \overset{\texttt{D}} {\to} (3, 0) \overset{\texttt{D}} {\to} (3, -1)。$$在第四组测试数据中,Alperen 的路径为
$$(0, 0) \overset{\texttt{L}} {\to} (-1, 0) \overset{\texttt{L}} {\to} (-2, 0) \overset{\texttt{L}} {\to} (-3, 0)。$$由 ChatGPT 4.1 翻译
样例
7
7
UUURDDL
2
UR
8
RRRUUDDD
3
LLL
4
DUUR
5
RUDLL
11
LLLLDDRUDRD
YES
YES
NO
NO
YES
YES
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |