luogu#B3683. [语言月赛202211] String Problem

[语言月赛202211] String Problem

题目背景

扶苏很喜欢研究制糊串问题。

题目描述

扶苏给你了两个长度为 nn 的字符串 sstt,请你判定这两个字符串是否相同。

扶苏觉得这个问题太简单了,所以她还给出了 qq 次操作,每次操作是修改其中一个字符串的某个位置的字符。每次操作过后,都请你回答一次 sstt 是否相同。

字符串下标从 1 开始编号。例如,若字符串 ssabc\texttt {abc},要将它的第二个位置修改为 dd,则修改后的字符串为 adc\texttt{adc}

输入格式

本题单测试点内有多组测试数据

输入的第一行是一个整数 TT,表示数据组数。接下来按顺序给出每组数据的输入:

对每组数据,第一行是两个整数,依次表示字符串长度 nn 和操作的次数 qq
第二行是一个长度为 nn 的字符串,表示 ss
第三行是一个长度为 nn 的字符串,表示 tt
接下来 qq 行,每行两个整数 o,po, p 和一个字符 cc,其中 oo0011

  • o=0o = 0,则表示将字符串 ss 的第 pp 个字符修改成 cc
  • o=1o = 1,则表示将字符串 tt 的第 pp 个字符修改成 cc

输出格式

对每组数据,依次输出答案。

每组数据共需要输出 q+1q + 1 行。
首先对初始给定的字符串 sstt,若他们相同,则输出一行 Yes,否则输出一行 No
接下来,对每次操作,若操作后两字符串相同,输出一行 Yes,否则输出一行 No

2
3 2
abc
abc
1 2 d
0 2 d
5 0
abdce
acdce

Yes
No
Yes
No

提示

样例 1 解释

对第一组数据:

  • 输入的字符串 s=ts = t,故第一行输出为 Yes
  • 第一次操作,将 tt 的第 2 位改为 d\texttt d,此时 s=abcs = \texttt{abc}t=adct = \texttt{adc}sts \neq t,故第二行输出为 No
  • 第二次操作,将 ss 的第 2 位改为 d\texttt d,此时 s=adcs = \texttt{adc}t=adct = \texttt{adc}s=ts = t,故第三行输出为 Yes

对第二组数据:

  • 输入的字符串 sts \neq t,故第四行输出为 No

数据规模与约定

本题共 10 个测试点,各测试点的规模见下表

测试点编号 n=n = q=q =
1 11 00
2 10001000
3
4 10001000
5
6
7 10610^6
8
9
10

对全部的测试点,保证 T=5T = 5s,ts,t 均只含小写英文字母,输入的换行符不含 \ro{0,1}o \in \{0, 1\}1pn1 \leq p \leq ncc 为小写英文字母。

提示

请注意大量的数据读入输出对程序效率造成的影响。

By 一扶苏一