CF163E e-Government
题目描述
来自 Embezzland 的最强的程序员齐聚一堂,为开发项目“电子政![]()府”的一部分——一个自动收集、分析新闻数据的统计系统而竞争。
所有的 $k$ 个市民都有可能成为 Embezzland 政![]()府的成员。市民的名字分别为 $a_1,a_2,\cdots,a_k$。所有的名字都是不同的。初始时所有 $k$ 个市民都是政![]()府的成员。系统需要支持以下操作:
- 让市民 $a_i$ 加入政![]()府。
- 让市民 $a_i$ 退出政![]()府。
- 给出一段报纸上的文本,计算其政治相关性。具体地,对每一名当前在政![]()府中的市民,统计他的名字作为文本的子串出现了多少次。文本的政治相关性是所有政![]()府成员名字出现次数的和。
你要实现这个系统。
输入格式
第一行两个整数 $n,k(1\le n,k\le 10^5)$,$n$ 为接下来的询问个数。\
接下来 $k$ 行,每行一个由小写字母构成的字符串 $a_i$。\
接下来 $n$ 行,每行一个询问。前两类操作分别以 `+`、`-` 开头,后面无空格地紧跟着一个整数 $i$,表示操作市民的编号;第三类操作以 `?` 开头,后面无空格地紧跟着一个小写字母构成的字符串,表示询问文本。
保证所有输入的字符串——名字和文本均由小写字母组成且非空。所有名字长度和 $\le 10^6$,所有询问文本长度和 $\le 10^6$。
有的操作会让你把一个已经在政![]()府中的市民加入政![]()府,或让你把一个不在政![]()府中的市民移除政![]()府。请忽略这些操作。
输出格式
对于每个询问,输出一行一个整数表示答案。
说明/提示
By @[chenxi2009](/user/1020063)