#abc475e. Quiz Competition: Qualifiers

Quiz Competition: Qualifiers

题目描述

某问答比赛举行了预选赛。参赛者共 NN 人,编号 11NN,最多有 MM 人能够晋级。

预选赛由 KK 道二选一的题目组成,每题的答案是 ox。参赛者 ii 对第 jj 题的作答,是字符串 SiS_i 的第 jj 个字符;第 jj 题的正确答案是字符串 TT 的第 jj 个字符。

晋级者按下列流程确定:

  • 最初晋级者与淘汰者都是 00 人,全部 NN 人都是待定者
  • k=1,2,,Kk = 1, 2, \ldots, K 的顺序执行下面的处理:
    • 若「已晋级人数 ++ 待定者中第 kk 题答对的人数」不超过 MM,则把待定者中第 kk 题答对的人全部定为晋级者;
    • 否则,把待定者中第 kk答错的人全部定为淘汰者;
  • 最后把所有仍是待定者的人全部定为淘汰者。

给出 QQ 个询问,请按顺序处理:

  • 给定整数 i,ji, j。把参赛者 ii 对第 jj 题的作答由 o 改为 x、或由 x 改为 o。之后判断参赛者 ii 能否晋级。

每个询问中的修改会一直保留,影响之后的所有询问。

输入格式

N M K
T
S_1
...
S_N
Q
query_1
...
query_Q

其中每个询问的格式为:

i j

输出格式

输出 QQ 行。第 qq 行:若第 qq 个询问指定的参赛者能晋级则输出 Yes,否则输出 No

输入示例 1

5 3 3
oxo
oxo
oxx
xxo
xox
xoo
3
5 1
1 3
4 1

输出示例 1

Yes
Yes
No

示例 1 说明

  • 11 个询问到来前:第 11 题参赛者 1,21,2 晋级,第 22 题参赛者 33 晋级,晋级者是 {1,2,3}\{1,2,3\}
  • 11 个询问后:第 11 题参赛者 1,2,51,2,5 晋级,晋级者变为 {1,2,5}\{1,2,5\}。参赛者 55 能晋级,输出 Yes
  • 22 个询问后:晋级者仍是 {1,2,5}\{1,2,5\}。参赛者 11 能晋级,输出 Yes
  • 33 个询问后:第 11 题参赛者 33 被淘汰,第 22 题参赛者 1,21,2 晋级,第 33 题参赛者 55 晋级,晋级者仍是 {1,2,5}\{1,2,5\}。参赛者 44 不能晋级,输出 No

注意第 33 个询问里,被修改的参赛者 44 自己没有晋级,但他的修改改变了整个流程(第 11 题答对的人数变成 44 人,超过了 M=3M=3,于是走了「淘汰答错者」的分支)。

输入示例 2

3 1 2
ox
xo
oo
ox
4
3 1
1 1
2 2
1 2

输出示例 2

No
No
Yes
No

示例 2 说明

M=1M = 1,名额极少,因此绝大多数时候都会走「淘汰答错者」的分支。这组数据用来检验 MM 取最小值时的处理。

输入示例 3

1 1 1
o
o
2
1 1
1 1

输出示例 3

No
Yes

示例 3 说明

N=M=K=1N = M = K = 1 是允许的最小规模。第 11 个询问把唯一参赛者的作答改错,此时第 11 题答对人数为 000+010 + 0 \le 1 走「晋级答对者」分支,但他不在其中,最终作为待定者被淘汰,输出 No;第 22 个询问改回正确,他被判晋级,输出 Yes

这组数据说明:走「晋级答对者」分支时,答错的人并不会被淘汰,而是继续留作待定者。

约束条件

  • 1MN3×1041 \le M \le N \le 3 \times 10^4
  • 1K2001 \le K \le 200
  • SiS_iTT 都是仅由 ox 组成的长度为 KK 的字符串
  • 1Q5×1041 \le Q \le 5 \times 10^4
  • 每个询问满足 1iN1 \le i \le N1jK1 \le j \le K