CF2157B Expansion Plan 2
题目描述
你正在分析一个无限的网格,坐标为 $(X, Y)$(特别地,$(0, 0)$ 正上方的格子是 $(0, 1)$,正右方的格子是 $(1, 0)$)。初始时,只有 $(0, 0)$ 这个格子是黑色的。
你得到一个长度为 $n$ 的字符串 $a_1a_2\ldots a_n$,每个字符都是 $\texttt{"4"}$ 或 $\texttt{"8"}$,描述了 $n$ 次扩展操作。对于每一次 $i$,所有格子会同时进行如下操作:
- 如果 $s_i = \texttt{"4"}$:对于每一个格子,若它与某个黑色格子正交相邻(即有一条边相接),它会变成黑色;否则,它的状态不变。
- 如果 $s_i = \texttt{"8"}$:对于每一个格子,若它与某个黑色格子正交或对角相邻(即有一条边或一个角相接),它会变成黑色;否则,它的状态不变。
请你判断,在给定操作结束后,$(x, y)$ 这个格子是否是黑色的。
输入格式
每组测试数据包含多个测试用例。第一行是测试用例数量 $t$($1 \le t \le 10^4$)。
每个测试用例描述如下:
第一行包含三个整数 $n$、$x$、$y$($1 \le n \le 2 \cdot 10^5, -10^9 \le x, y \le 10^9$)——扩展操作次数,以及你关心的格子的坐标。
第二行包含一个长度为 $n$ 的字符串 $s$,仅包含字符 $\texttt{"4"}$ 和 $\texttt{"8"}$,表示每次扩展操作的类型。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,如果 $(x, y)$ 在所有扩展操作后是黑色的,输出 $\texttt{YES}$;否则,输出 $\texttt{NO}$。
输出对大小写不敏感(例如,$\texttt{YES}$、$\texttt{Yes}$、$\texttt{yes}$、$\texttt{yEs}$ 都会被认为是正解)。
说明/提示
前三个测试用例如下图所示:



在第一个测试用例中,经过字符串 $\texttt{"888"}$ 的扩展操作后,$(3, 3)$ 格子是黑色的,因此答案是 $\texttt{YES}$。
在第二个测试用例中,经过字符串 $\texttt{"4884"}$ 的扩展操作后,$(5, 1)$ 格子仍然是白色的。
由 ChatGPT 5 翻译