#P1211. 音符序列(seq)
音符序列(seq)
题目描述
在一个音乐创作和分析系统中,音乐旋律可以用一个由小写英文字母组成的字符串来表示,每个字母代表一个特定的音符。现在有一个音乐音符序列字符串 (只包含小写字母),其长度为 。
系统会对这个音乐音符序列进行一系列的操作和验证,总共有 个查询,这些查询需要按顺序依次处理。
每个查询分为以下两种类型:
• 1 x c :表示对音乐音符序列 进行一次音符修改操作。具体来说,就是将 中第 个位置的音符替换为新的音符 (小写字母)。
• 2 l r :表示进行一次旋律片段验证操作。系统会将当前的音乐音符序列 中的字符按照升序排列,得到一个新的字符串 。然后,需要验证 中从第 个字符到第 个字符所构成的音符子串是否是 的一个子串。如果是,则输出 Yes;否则输出 No。
什么是子串? 的一个子串是指通过删除 的前导字符和尾随字符中的 个或多个而得到的字符串。例如,ab 是 abc 的子串,而 ac 不是 abc 的子串。
例如,假设初始的音乐音符序列字符串 S = "abcde",如果执行查询 1 3 f,那么 就会更新为 S = "abfde"。接着如果执行查询 2 1 3",此时将 按升序排列得到 T = "abdef",而 中从第 个字符到第 个字符构成的音符子串是 "abf",它不是 的子串,所以会输出 No。
输入格式
从文件 中读入数据。
第一行输入一个整数 。
第二行输入一个字符串 。
第三行输入一个整数 。
接下来输入 行,每行输入一个询问,格式如题面所述。
输出格式
输出答案到文件 中。
对每个询问,输出 Yes 或 No。
输入输出样例 #1
输入 #1
6
abcdcf
4
2 1 3
2 2 6
1 5 e
2 2 6
输出 #1
Yes
No
Yes
样例1解释
- 在第1个查询中,通过将字符串的字符按升序排序得到的字符串为
abccdf。由的第1个到第3个字符组成的字符串abc是的一个子串,所以应该输出Yes。 - 在第2个查询中,通过将字符串的字符按升序排序得到的字符串为
abccdf。由的第2个到第6个字符组成的字符串bcdcf不是的一个子串,所以应该输出No。 - 第3个查询将的第5个字符设置为
e,使得变为abcdef。 - 在第4个查询中,通过将字符串的字符按升序排序得到的字符串为
abcdef。由的第2个到第6个字符组成的字符串bcdef是的一个子串,所以应该输出Yes。
数据范围
-
-
是长度为 的字符串,由小写英文字母组成。
-
-
对于每个第一类查询, 。
-
对于第一种查询, 是一个小写英文字母。
-
对于每个第二类查询, 。