#B3683. String Problem

String Problem

String Problem

来源:洛谷 B3683([语言月赛202211] String Problem)

题目描述

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

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

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

输入格式

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

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

对每组数据,第一行是两个整数,依次表示字符串长度 nn 和操作的次数 qq。

第二行是一个长度为 nn 的字符串,表示 ss。

第三行是一个长度为 nn 的字符串,表示 tt。

接下来 qq 行,每行两个整数 o,po, p 和一个字符 cc,其中 oo 是 00 或 11。

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

输出格式

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

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

样例 #1

样例输入 #1

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

样例输出 #1

Yes
No
Yes
No

提示

样例 1 解释

对第一组数据:

  • 输入的字符串 s=ts = t,故第一行输出为 Yes;
  • 第一次操作,将 tt 的第 2 位改为 d,此时 s=s = abc,t=t = adc,s≠ts \neq t,故第二行输出为 No;
  • 第二次操作,将 ss 的第 2 位改为 d,此时 s=s = adc,t=t = adc,故第三行输出为 Yes。

对第二组数据:

  • 输入的字符串 s≠ts \neq t,故第四行输出为 No。

数据规模与约定

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

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