AT_abc475_e [ABC475E] Quiz Competition: Qualifiers

题目描述

一个智力竞赛正在举行。这里有 $N$ 个选手,编号从 $1$ 到 $N$,他们中至多 $M$ 个可以获胜。 这个智力竞赛由 $K$ 个判断题组成,这个判断题的答案是 `o` 或 `x`。 第 $i$ 个选手对第 $j$ 个问题的答案是字符串 $S_i$ 的第 $j$ 个字符。第 $j$ 个问题的正确答案是字符串 $T$ 的第 $j$ 个字符。 获胜者由下面的流程选出: + 一开始,获胜者和出局者的数量都是 $0$。所有的 $N$ 个选手都是待定者。 + 对于每个 $k=1,2,\cdots,K$,依次执行下面的流程。 + 如果当前的待定者中答对第 $k$ 个问题的人数加上获胜者的人数不超过 $M$,这些答对的人立即成为获胜者,不再是待定者。 + 否则答错这个问题的待定者立即出局,不再是待定者。 + 最后,处理完所有题目后,如果还有人待定,这些待定者出局。 给出 $Q$ 个询问,形式如下。按顺序回答他们。 + 给出整数 $i,j$,改变第 $i$ 个选手对第 $j$ 个问题的答案(从 `o` 变为 `x`,或者 `x` 变为 `o`)。然后输出第 $i$ 个选手是否最后为获胜者。 修改永久保留,会影响后面的所有询问。

输入格式

第一行三个整数 $N,M,K$。 接下来一行一个字符串 $T$。 接下来 $N$ 行每行一个字符串,表示 $S_1,S_2,\cdots,S_N$。 接下来一行一个整数 $Q$ 表示询问个数。 接下来 $Q$ 行,每行两个整数 $i,j$,具体意义见题目描述。

输出格式

输出 $Q$ 行,如果第 $q$ 个问题问的人能获胜,在第 $q$ 行输出 `Yes`。否则输出 `No`。

说明/提示

+ 在第一个询问之前,选手 $1,2$ 在问题 $1$ 上获胜且选手 $3$ 在问题 $2$ 上获胜,因此获胜者是 $1,2,3$。 + 在第一次修改后,选手 $1,2,5$ 在问题 $1$ 上获胜,其中 $5$ 为询问对象,因此输出 `Yes`。 + 在第二次修改后,依旧是选手 $1,2,5$ 在问题 $1$ 上获胜,其中 $1$ 为询问对象,因此输出 `Yes`。 + 在第三次修改后,在第一个问题上选手 $3$ 出局,选手 $1,2$ 在第二个问题上获胜,选手 $5$ 在第三个问题上获胜。而最后 $4$ 没有获胜,所以输出 `No`。 ### 数据范围 - $ 1 \leq M \leq N \leq 3\times 10^4 $。 - $ 1 \leq K \leq 200 $。 - $ S_i $ 和 $ T $ 都是长 $ K $ 的字符串,由 `o` 和 `x` 组成。 - $ 1 \leq Q \leq 5\times 10^4 $。 - 对于每个询问 $ 1\leq i \leq N $ 且 $ 1 \leq j \leq K $。