#P5561. [Celeste-B] Mirror Magic

[Celeste-B] Mirror Magic

题目背景

...

呼吸。

你能站起来,Madeline

想想羽毛。你能拯救 Theo

题目描述

镜之神庙是一座有魔力的神庙,在这里你能一窥自己心灵的真相。

Theo 被困在了一面镜子里。当 Madeline 尝试去拯救 Theo 时,神庙里的"生物"们给她出了一道难题,这道难题是这样的:

神庙的"生物"们准备了 nn 串草莓,这些草莓的长度之和 <=106<= 10^6,现在它们可以执行这样一些操作:

1 x l r1\ x\ l\ r,表示将编号 xx 的草莓串的子草莓串 [l,r][l,r] 复制一份,插入当前的草莓集合中,保证草莓串 xx 的长度 >=r>=r

2 k2\ k,表示删除第 kk 次操作插入的草莓串,保证第 kk 次操作为插入并且此时第 kk 次操作插入的草莓串在集合中。

"生物"们认为和谐的味道才是美味的。在执行任意一次操作之后,"生物"们想要知道当前集合中所有草莓串的美味度(即 LCPLCP - 最长公共前缀)。(若集合为空,则美味度 00,若集合中只有一个草莓串,则美味度为草莓串的长度)

为了方便表达,我们把每一种草莓表示为一个小写英文字母

多年以后,Madeline 又来到了镜之神庙,想要回忆多年前自己的登山旅途,可是她已经不记得自己当年是怎么解决那道谜题的了,你能帮帮她找到谜题的答案吗?

输入格式

第一行一个正整数 nn,表示草莓串的个数。

接下来 nn 行一行一个只包含小写字母的字符串,表示原来的 nn 个草莓串。

接下来一行一个正整数 qq,表示操作个数。

接下来 qq 行一行一个操作。

输出格式

输出 qq 行,对应每次操作之后集合中草莓串的美味度(LCPLCP - 最长公共前缀).

3
abccccd
abccddc
acbbcad
5
1 1 1 7
1 2 1 7
1 3 1 7
2 3
2 2

7
4
1
4
7

提示

样例解释:

第一次操作后,集合为 {"abccccd"}\{"abccccd"\},LCP=7LCP=7

第二次操作后,集合为 {"abccccd","abccddc"}\{"abccccd","abccddc"\},LCP=4LCP=4

第三次操作后,集合为 {"abccccd","abccddc","acbbcad"}\{"abccccd","abccddc","acbbcad"\},LCP=1LCP=1

第四次删除了第三次插入的串,故 LCP=4LCP=4

第五次删除了第二次插入的串,故 LCP=7LCP=7

lenlen 等于 nn 个串的长度之和。总有 len106len \leq 10^6

Subtask 11(1010 Pts), n5,q=10n \leq 5, q = 10

Subtask 22(3030 Pts), n106,q=106n \leq 10^6, q = 10^6, 保证每次插入的是串的一个前缀

Subtask 33(1010 Pts), n106,q=105n \leq 10^6, q = 10^5, 不含 22 操作, 保证询问为随机生成

Subtask 44(5050 Pts), n106,q=106n \leq 10^6, q = 10^6

提示:你可以根据 qq 判断 Subtask 编号