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 $。