#AT2442. F - Substring of Sorted String
F - Substring of Sorted String
当前没有测试数据。
F - 有序字符串的子串
得分:$500$ 分
问题描述
给定一个长度为 $N$ 的由小写英文字母组成的字符串 $S$,以及 $Q$ 个查询。按照查询的顺序进行处理。
每个查询是以下两种之一:
1 x c
:将 $S$ 的第 $x$ 个字符替换为字符 $c$。2 l r
:令 $T$ 是按照字母升序对 $S$ 的字符排序后得到的字符串。如果由 $S$ 的第 $l$ 个字符到第 $r$ 个字符组成的字符串是 $T$ 的一个子串,则输出Yes
,否则输出No
。
什么是子串?
一个字符串 $S$ 的 子串 是通过删除其中 $0$ 个或多个初始字符和 $0$ 个或多个结束字符而得到的字符串。 例如,ab
是字符串 abc
的子串,而 ac
不是字符串 abc
的子串。
约束条件
- $1\leq N \leq 10^5$
- $S$ 是一个长度为 $N$ 的由小写英文字母组成的字符串。
- $1 \leq Q \leq 10^5$
- 对于每个第一种类型的查询,$1 \leq x \leq N$。
- 对于每个第一种类型的查询,$c$ 是一个小写英文字母。
- 对于每个第二种类型的查询,$1 \leq l \leq r \leq N$。
输入
输入为标准输入格式,具体如下,其中第 $i$ 个查询表示为 $\text{query}_i$:
输出
按照问题描述进行处理查询。
6
abcdcf
4
2 1 3
2 2 6
1 5 e
2 2 6
Yes
No
Yes
- 在第 $1$ 个查询中,字符串 $T$ 是将 $S$ 的字符按升序排序后得到的
abccdf
。 $S$ 的由第 $1$ 到第 $3$ 个字符组成的字符串abc
是 $T$ 的一个子串,因此应输出Yes
。 - 在第 $2$ 个查询中,字符串 $T$ 是将 $S$ 的字符按升序排序后得到的
abccdf
。 $S$ 的由第 $2$ 到第 $6$ 个字符组成的字符串bcdcf
并不是 $T$ 的一个子串,因此应输出No
。 - 第 $3$ 个查询将 $S$ 的第 $5$ 个字符设为
e
,使得 $S$ 变为abcdef
。 - 在第 $4$ 个查询中,字符串 $T$ 是将 $S$ 的字符按升序排序后得到的
abcdef
。 $S$ 的由第 $2$ 到第 $6$ 个字符组成的字符串bcdef
是 $T$ 的一个子串,因此应输出Yes
。