CF1902D Robot Queries
题目描述
有一个无限的二维网格。最初,机器人站在点 $(0, 0)$。机器人可以执行四种指令:
- U — 从点 $(x, y)$ 移动到 $(x, y + 1)$;
- D — 从点 $(x, y)$ 移动到 $(x, y - 1)$;
- L — 从点 $(x, y)$ 移动到 $(x - 1, y)$;
- R — 从点 $(x, y)$ 移动到 $(x + 1, y)$。
给定一个长度为 $n$ 的指令序列 $s$。你需要回答 $q$ 个独立的询问:每个询问给定四个整数 $x$、$y$、$l$ 和 $r$,判断在执行指令序列 $s$ 的过程中,如果将第 $l$ 到第 $r$ 个字符的子串反转(即机器人按顺序执行 $s_1 s_2 s_3 \dots s_{l-1} s_r s_{r-1} s_{r-2} \dots s_l s_{r+1} s_{r+2} \dots s_n$),机器人是否会经过点 $(x, y)$。
输入格式
第一行包含两个整数 $n$ 和 $q$($1 \le n, q \le 2 \cdot 10^5$),分别表示指令序列的长度和询问的数量。
第二行包含一个长度为 $n$ 的字符串 $s$,仅由 U、D、L、R 组成。
接下来 $q$ 行,每行包含四个整数 $x_i$、$y_i$、$l_i$ 和 $r_i$($-n \le x_i, y_i \le n$;$1 \le l \le r \le n$),描述第 $i$ 个询问。
输出格式
对于每个询问,如果机器人在执行反转后的指令序列时经过点 $(x, y)$,输出 YES,否则输出 NO。
说明/提示
在第一个样例的第一个询问中,机器人的路径如下:

在第一个样例的第二个询问中,机器人的路径如下:

在第一个样例的第三个询问中,机器人的路径如下:

由 ChatGPT 4.1 翻译