合成串(14-2)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
“相逢一醉是前缘,风雨散、飘然何处?”——宋·苏轼《鹊桥仙》
xrh 和 fxt 是两位程序界的巨佬,我们发现他们名字中每个字符的 ASCII 码之和完全相同——
前者的 ASCII 码和是 ,
后者的 ASCII 码和是 。
这次奇妙的巧合,让我们不得不相信,他们在某种意义上果真“有缘”。
题目描述
给定长度均为 的两个字符串 和 ,用 分别表示它们的第 个字符。
若 和 的所有字符的 ASCII 码之和相等,则称它们“有缘”。
我们将 和 交替拼接,先放 后放 ,得到字符串 ,称之为 和 的“合成串”。
例如,, 时的合成串是 ;而若先拼 再拼 ,则是 。
形式化地,若有字符串 ,长度均为 ,定义
$$c_{2i-1}=a_i,\quad c_{2i}=b_i,\quad i=1,2,\dots,l. $$它们三者互为“捆绑关系”:对任意一次修改,若某个位置的字符被更新,其对应的合成串 中的字符也同步更新;反之亦然。
你需要支持以下五种操作(共 次):
1 x z
将 改为字符 ,对应的 也随之变为 。
2 x z
将 改为字符 ,对应的 也随之变为 。
3 x z
将 改为字符 ,若 为奇数,则也将 更新为 ;若 为偶数,则也将 更新为 。
4
将合成串 整体翻转。翻转后,新的 对应的 和 也按捆绑关系自动更新。
5
查询当前的 和 是否有缘:如果两者 ASCII 码之和相等,输出 “Yes”,否则输出 “No”。
所有操作执行完毕后,输出最终的合成串 。
输入格式
第一行:两个由小写字母组成的字符串 和 ,长度均为 。
第二行:一个整数 ,表示操作次数。
接下来 行,每行按照操作编号给出相应的参数:
- 操作 1、2、3:格式为 “类型 x z”,含义如上;
- 操作 4、5:格式为单个数字 “4” 或 “5”。
输出格式
对于每次操作 5,单独输出一行 “Yes” 或 “No”。
所有操作结束后,再输出一行,包含最终的合成串 。
样例
xrh fxt
10
5
4
2 2 j
2 3 w
1 1 s
1 2 d
1 3 r
5
1 1 r
5
Yes
Yes
No
rhdjrw
样例解释
操作过程演示( 三者始终保持捆绑):
- 初始:
a = xrh, b = fxt, c = x f r x h t - 操作 5:查询 ASCII 码和,相等 ⇒ Yes
- 操作 4:翻转 c ⇒ t h x r f x,同时更新 a=txf, b=hrx
- 操作 2 2 j:b₂ = j ⇒ b=hjx, c=thxjfx
- 操作 2 3 w:b₃ = w ⇒ b=hjw, c=thxjfw
- 操作 1 1 s:a₁ = s ⇒ a=sxf, c=shxjfw
- 操作 1 2 d:a₂ = d ⇒ a=sdf, c=shdjfw
- 操作 1 3 r:a₃ = r ⇒ a=sdr, c=shdjrw
- 操作 5:查询 ⇒ Yes
- 操作 1 1 r:a₁ = r ⇒ a=rdr, c=rhdjrw
- 操作 5:查询 ⇒ No
最终合成串:rhdjrw
数据范围
记 为字符串长度, 为操作次数。
- 10% 的数据,,;
- 20% 的数据,,;
- 40% 的数据,,;
- 其余 50% 的数据,随机生成且满足 ,;
- 对于全部数据,所有更新操作中 满足合法范围,所有字符均为小写字母。