#2982. 字符串游戏

字符串游戏

Description

给定N个仅有a~z组成的字符串ai,每个字符串都有一个权值vi,有M次操作,操作分三种:

Cv x v':把第x个字符串的权值修改为v'

Cs x a':把第x个字符串修改成a'

Q:求出当前的最大权字符串集合,使得这个集合中的字符串经过重新排列后满足除最后一个字符串外,前一个字符

串是后一个的前缀(两个字符串相同也是前缀关系,也可以一个字符串都不选)

前50%的数据可以接受离线算法,后50%的数据要求在线算法。

Format

Input

输入的第一行包含一个正整数Test表示当前的数据类型。

输入的第二行包含两个正整数N,M表示字符串数和操作数。

以下N行,每行一个字符串ai

第N+3行包含N个整数vi

以下M行,为M次操作,操作有三种Cv x v',Cs x a',Q,第三种操作如题目描述一样,对于Test=1的修改操作,不用

做 任何变化,对于Test=2的修改操作,假设当前最后一次询问操作的答案是ans(如果还没有询问操作,ans=0),那

么对于第 一种操作中的v'=min(1000,v'+(ans mod 1000)),对于第二种操作的字符串a',它的每一位都要加上ans m

od 26(a~z循环)

数据分两种,A类数据可以用离线的方法来完成,B类数据必须使用在线算法。

令len=输入数据中所有出现的字符串总长度

数据分两种,A类数据可以用离线的方法来完成,B类数据必须使用在线算法。

N<=50000,M<=10^5,Len<=10^6

Output

对于每一次询问输出合法的最大权字符串集合的权值和

Samples

1
5 5
aba
ab
babb
abaa
abab
-2 1 4 2 3
Q
Cv 1 2
Q
Cs 3 abaab
Q
4
6
9