#Lutece3132. silent wind bell
silent wind bell
Migrated from Lutece 3132 silent wind bell
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
Tag:Hash、二分、平衡树
尽管以一副知晓生命意义的口吻高谈阔论
清醒过来 我与情报弱者之间不过半斤八两
为了向情强哥证明你不是情报弱者,你需要帮助他解决一个困扰他许久的问题。
情强哥有一个初始时长度为 的01串 ,他会对 进行 次操作,每次操作格式如下(假设在进行每个操作之前, 的长度为 ):
1 p c
,在 的第 个字符后面插入一个新的字符 ( ,当 时表示在 开头插入)。2 p
,删除 中第 个字符( )。3 p q
,将 中 区间内的字符翻转( )。4 p q
,求出后缀 和后缀 的LCP的长度( )。
为了帮助你更好地理解问题,这里是情强哥对于出现的一些名词的解释:
- 区间翻转:对长为 的字符串 的区间 进行翻转,结果为 $S_1,\cdots,S_{l-1},S_r,S_{r-1},\cdots,S_{l+1},S_l,S_{r+1},\cdots,S_n$ 。
- LCP:即最长公共前缀,即字符串 的两个(或多个)后缀共同拥有的最长的前缀子串。
Input
输入的第一行包括两个正整数 ,分别表示初始时01串的长度以及操作的数量。
第二行包括一个长为 的01串 。
接下来的 行每行一个操作,格式与意义如题面所述。
Output
对于每个第四种类型的操作,输出一行一个正整数表示答案。
Samples
12 9
000100001100
1 0 1
4 2 6
3 7 10
4 1 7
2 9
4 3 11
4 1 9
4 1 7
4 2 3
3
6
2
0
3
2
Constraints
,其余限制均在题面中给出。
Note
- 在经过操作
1 0 1
后, - 在经过操作
3 7 10
后, - 在经过操作
2 9
后,
Resources
2024 UESTC ICPC Training for Data Structures