#CF1791B. Following Directions

    ID: 6833 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>计算几何模拟CodeforcesCodeforces Round 849(Div4)Div4BCF1791B800

Following Directions

题目描述

Alperen 站在点 (0,0)(0,0)。他得到一个长度为 nn 的字符串 ss,并进行 nn 次移动。第 ii 次移动如下:

  • 如果 si=Ls_i = \texttt{L},则向左移动一格;
  • 如果 si=Rs_i = \texttt{R},则向右移动一格;
  • 如果 si=Us_i = \texttt{U},则向上移动一格;
  • 如果 si=Ds_i = \texttt{D},则向下移动一格。

如果 Alperen 从中心点出发,他可以进行如图所示的四种移动。

(1,1)(1,1) 处有一颗糖果(即 Alperen 起点的右上方各一格)。你需要判断 Alperen 是否曾经过这颗糖果。

第一组测试数据中 Alperen 的路径如图所示。

输入格式

输入的第一行包含一个整数 tt1t10001 \leq t \leq 1000),表示测试用例的数量。

每组测试用例的第一行包含一个整数 nn1n501 \leq n \leq 50),表示字符串的长度。

每组测试用例的第二行包含一个长度为 nn 的字符串 ss,由字符 L\texttt{L}R\texttt{R}D\texttt{D}U\texttt{U} 组成,表示 Alperen 的移动方式。

输出格式

对于每组测试用例,如果 Alperen 曾经过糖果的位置,输出 "YES"(不带引号);否则输出 "NO"(不带引号)。

你可以用任意大小写输出答案(例如 "yEs"、"yes"、"Yes" 和 "YES" 都会被识别为正确答案)。

样例

7
7
UUURDDL
2
UR
8
RRRUUDDD
3
LLL
4
DUUR
5
RUDLL
11
LLLLDDRUDRD
YES
YES
NO
NO
YES
YES
NO

样例说明

在第一组测试数据中,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 不需要最终停在 (1,1)(1,1),只要在移动过程中经过即可。

在第二组测试数据中,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 翻译

来源

Codeforces 1791B,英文题名 Following Directions。