CF2157B.Expansion Plan 2

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Expansion Plan 2

题目描述

你正在分析一个无限的网格,坐标为 (X,Y)(X, Y)(特别地,(0,0)(0, 0) 正上方的格子是 (0,1)(0, 1),正右方的格子是 (1,0)(1, 0))。初始时,只有 (0,0)(0, 0) 这个格子是黑色的。

你得到一个长度为 nn 的字符串 a1a2ana_1a_2\ldots a_n,每个字符都是 "4"\texttt{"4"}"8"\texttt{"8"},描述了 nn 次扩展操作。对于每一次 ii,所有格子会同时进行如下操作:

  • 如果 si="4"s_i = \texttt{"4"}:对于每一个格子,若它与某个黑色格子正交相邻(即有一条边相接),它会变成黑色;否则,它的状态不变。
  • 如果 si="8"s_i = \texttt{"8"}:对于每一个格子,若它与某个黑色格子正交或对角相邻(即有一条边或一个角相接),它会变成黑色;否则,它的状态不变。

请你判断,在给定操作结束后,(x,y)(x, y) 这个格子是否是黑色的。

输入格式

每组测试数据包含多个测试用例。第一行是测试用例数量 tt1t1041 \le t \le 10^4)。
每个测试用例描述如下:

第一行包含三个整数 nnxxyy1n2105,109x,y1091 \le n \le 2 \cdot 10^5, -10^9 \le x, y \le 10^9)——扩展操作次数,以及你关心的格子的坐标。

第二行包含一个长度为 nn 的字符串 ss,仅包含字符 "4"\texttt{"4"}"8"\texttt{"8"},表示每次扩展操作的类型。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,如果 (x,y)(x, y) 在所有扩展操作后是黑色的,输出 YES\texttt{YES};否则,输出 NO\texttt{NO}

输出对大小写不敏感(例如,YES\texttt{YES}Yes\texttt{Yes}yes\texttt{yes}yEs\texttt{yEs} 都会被认为是正解)。

说明/提示

前三个测试用例如下图所示:



在第一个测试用例中,经过字符串 "888"\texttt{"888"} 的扩展操作后,(3,3)(3, 3) 格子是黑色的,因此答案是 YES\texttt{YES}

在第二个测试用例中,经过字符串 "4884"\texttt{"4884"} 的扩展操作后,(5,1)(5, 1) 格子仍然是白色的。

由 ChatGPT 5 翻译

样例

6
3 3 3
888
4 5 1
4884
4 3 -3
4884
7 -7 -5
4884884
10 0 0
4884884888
1 1 1
4
YES
NO
YES
NO
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验