CF2036C Anya and 1100

题目描述

在一个遥远的抽屉里翻找东西时,Anya 发现了一个只由 $0$ 和 $1$ 组成的漂亮字符串 $s$。 现在她想通过对字符串进行 $q$ 次操作,让它变得更加漂亮。 每次操作由两个整数 $i$($1 \le i \le |s|$)和 $v$($v \in \{0, 1\}$)描述,表示将字符串的第 $i$ 个字符赋值为 $v$(即执行 $s_i = v$)。 但是 Anya 非常喜欢数字 $1100$,所以每次操作后,她都会问你,她的字符串中是否存在子串 "1100"(即存在某个 $1 \le i \le |s| - 3$,使得 $s_{i}s_{i+1}s_{i+2}s_{i+3} = \texttt{1100}$)。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个字符串 $s$($1 \leq |s| \leq 2 \times 10^5$),只包含字符 "0" 和 "1"。这里 $|s|$ 表示字符串 $s$ 的长度。 下一行包含一个整数 $q$($1 \leq q \leq 2 \times 10^5$),表示操作的数量。 接下来的 $q$ 行,每行包含两个整数 $i$($1 \leq i \leq |s|$)和 $v$($v \in \{0, 1\}$),描述一次操作。 保证所有测试用例中 $|s|$ 的总和不超过 $2 \times 10^5$,所有测试用例中 $q$ 的总和也不超过 $2 \times 10^5$。

输出格式

对于每次操作,如果 Anya 的字符串中存在 "1100" 这个子串,则输出 "YES";否则输出 "NO"。 你可以用任意大小写输出答案(例如 "yEs"、"yes"、"Yes"、"YES" 都会被认为是正确的)。

说明/提示

由 ChatGPT 4.1 翻译