#6873. Substrings in a String

    ID: 6873 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数据结构状态压缩暴力string suffix structures字符串处理*3000

Substrings in a String

好的,这是您要求的算法题题面的中文翻译和排版:


F. 字符串中的子串

每个测试点的时限:66
每个测试点的内存限制:256256 MB
输入:标准输入
输出:标准输出

给定一个字符串 ss,处理 qq 个询问,每个询问为以下两种形式之一:

  • 1 i c — 将字符串中第 ii 个字符修改为 cc
  • 2 l r y — 考虑 ss 中从位置 ll 到位置 rr 的子串,输出 yy 作为子串在其中出现的次数。

输入

第一行包含字符串 ss1s1051 \le |s| \le 10^5),由小写英文字母组成。
第二行包含一个整数 qq1q1051 \le q \le 10^5)— 需要处理的询问数量。
接下来的 qq 行描述询问,每行为以下两种形式之一:

  • 1 i c1is1 \le i \le |s|
  • 2 l r y1lrs1 \le l \le r \le |s|

其中 cc 是一个小写英文字母,yy 是一个非空字符串,仅由小写英文字母组成。
所有第二类询问中 yy 的长度之和不超过 10510^5
保证至少有一个第二类询问。
所有字符串的下标从 11 开始。
s|s| 表示字符串 ss 的长度。

输出

对于每个第二类询问,在单独的一行中输出所需的答案。

输入样例 1

ababababa
3
2 1 7 aba
1 5 c
2 1 7 aba

输出样例 1

3
1

输入样例 2

abcdcbc
5
2 1 7 bc
1 4 b
2 4 7 bc
1 2 a
2 1 4 aa

输出样例 2

2
2
1

说明

考虑第一个样例。初始时,字符串 aba 在区间 [1,7][1, 7] 中出现了 33 次。注意,两次出现可以重叠。
更新后,字符串变为 ababcbaba,此时 aba 在区间 [1,7][1, 7] 中只出现了 11 次。


如果您需要,我也可以帮您把这道题的解题思路或代码实现一并整理出来。