最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 扩张计划

    正文概述 陈老师   2026-01-20 15:14:42  

    题目描述

    你正在分析一个无限大的网格,每个格子的坐标为 (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""8",表示 nn 次扩张操作。对于每个 ii11nn,所有格子会同时进行如下操作:

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

    问:经过所有操作后,格子 (x,y)(x, y) 是否为黑色?

    输入格式

    每个测试包含多个测试用例。第一行包含测试用例数量 tt1t1041 \le t \le 10^4)。接下来依次描述每个测试用例。

    每个测试用例的第一行包含三个整数 nnxxyy1n21051 \le n \le 2 \cdot 10^5109x,y109-10^9 \le x, y \le 10^9)——分别表示扩张操作次数,以及你关心的格子的横纵坐标。

    第二行包含一个长度为 nn 的字符串 ss,仅由字符 '4''8' 组成 —— 表示每次扩张操作的类型。

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

    输出格式

    对每个测试用例,如果格子 (x,y)(x, y) 在所有操作结束后是黑色的,输出 YES,否则输出 NO

    判题器不区分大小写(例如 YESYesyesyEs 等都会被识别为肯定回答)。

    样例

    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
    

    提示

    样例解释

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

    • 第一个测试用例中,执行完字符串 "888" 描述的操作后,格子 (3,3)(3, 3) 是黑色的,因此答案是 YES
    • 第二个测试用例中,执行完 "4884" 后,格子 (5,1)(5, 1) 仍是白色,因此答案是 NO
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 扩张计划