CF1481A Space Navigation
题目描述
你梦见自己正驾驶着私人飞船前往名为 Planetforces 的星球。不幸的是,飞船的驾驶系统出现了故障,现在你需要修复它才能到达 Planetforces。
太空可以用 $XY$ 平面表示。你从点 $(0, 0)$ 出发,Planetforces 位于点 $(p_x, p_y)$。
你的飞船驾驶系统会按照一串指令 $s$ 行动。系统会从左到右读取 $s$。假设你当前在点 $(x, y)$,当前指令为 $s_i$:
- 如果 $s_i = \text{U}$,你会移动到 $(x, y + 1)$;
- 如果 $s_i = \text{D}$,你会移动到 $(x, y - 1)$;
- 如果 $s_i = \text{R}$,你会移动到 $(x + 1, y)$;
- 如果 $s_i = \text{L}$,你会移动到 $(x - 1, y)$。
由于字符串 $s$ 可能已损坏,你最终可能无法到达 Planetforces。幸运的是,你可以从 $s$ 中删除一些指令(可以为零),但不能改变它们的顺序。
你能否通过删除若干指令(可能为零),使得系统执行完所有指令后,你正好到达 Planetforces?
输入格式
第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。
每个测试用例包含两行。每个测试用例的第一行包含两个整数 $p_x$ 和 $p_y$($-10^5 \le p_x, p_y \le 10^5$,$(p_x, p_y) \neq (0, 0)$),表示 Planetforces 的坐标 $(p_x, p_y)$。
第二行包含字符串 $s$($1 \le |s| \le 10^5$,$|s|$ 表示字符串 $s$ 的长度),表示指令序列。
保证所有测试用例中 $|s|$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,如果你可以通过删除若干指令(可能为零)使得你能到达 Planetforces,输出 "YES";否则输出 "NO"。你可以用任意大小写输出答案。
说明/提示
在第一个样例中,你无需修改 $s$,因为给定的 $s$ 能直接带你到达 Planetforces。
在第二个样例中,你可以删除 $s_2$、$s_3$、$s_4$、$s_6$、$s_7$ 和 $s_8$,使 $s$ 变为 "UR"。
在第三个样例中,你必须删除 $s_9$,否则你无法停在 Planetforces 的位置。
由 ChatGPT 4.1 翻译