#P17704. [ICPC 2019 Nanjing R] Paper Grading

    ID: 20156 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2019cdq 分治可持久化哈希 hashing分块字典树 TrieICPC南京离线处理

[ICPC 2019 Nanjing R] Paper Grading

题目描述

故事纯属虚构。

第 84 大学的几乎所有学生都被要求参加一门名为 JL 的必修课并通过考试,这意味着数百名学生将一起参加这场期末考试。组织这门课程的老师一直在努力寻找一种更高效、更公平的方式来评阅试卷。今年,你被任命编写一个程序来评阅试卷。

现在,你拿到了一本“规则手册”,它实际上是一本由 nn 个仅含小写字母的字符串组成的字典,依次记作 s1,s2,⋯ ,sns_1, s_2, \cdots, s_n。然而,这本书作为一件魔法物品,可能会通过交换操作而被修改。可以随时交换字典中两个字符串的位置。例如,如果有人交换了第一个和第五个字符串,那么修改后这本字典中所谓的第一个字符串将是原来的第五个。

评分标准如下。一名学生及其试卷被描述为一个仅含小写字母的字符串 qq 以及三个整数系数 k,l,rk, l, r。该学生的最终得分应为规则手册中满足 l≤i≤rl \le i \le r 且 qq 与 sis_i 的最长公共前缀长度至少为 kk 的字符串 sis_i 的个数。

输入格式

第一行包含两个整数 nn 和 mm(1≤n,m≤2×1051 \le n, m \le 2 \times 10^5),其中 nn 是规则手册中字符串的个数,mm 是修改操作与学生查询的总次数。

接下来的 nn 行为 nn 个非空字符串 s1,s2,⋯ ,sns_1, s_2, \cdots, s_n,表示手册中的所有字符串,它们的总长度不超过 2×1052 \times 10^5。

再接下来的 mm 行,按时间顺序描述了所有修改操作和需要评分的学生的查询。每行以一个整数 optopt(1≤opt≤21 \le opt \le 2)开头。

  • 若 opt=1opt=1,后跟两个整数 ii 和 jj,描述了一次交换手册中第 ii 个和第 jj 个字符串的修改操作,其中 1≤i,j≤n1 \le i, j \le n,ii 可以等于 jj。
  • 若 opt=2opt=2,后跟一个非空字符串 qq 以及三个非负整数 k,l,rk, l, r,其中 0≤k≤∣q∣0 \le k \le |q| 且 1≤l≤r≤n1 \le l \le r \le n,表示如上所述的一名学生。

保证输入中给出的所有 qq 的总长度不超过 2×1052 \times 10^5。

输出格式

对于每名学生,输出一行一个整数,表示其试卷的得分。

3 4
aaa
bbb
aac
2 aasdd 2 1 3
2 aab 1 1 2
1 2 3
2 aat 2 1 2
2
1
2

提示

在样例中,初始的规则手册由 s1=aaas_1 = \texttt{aaa}、s2=bbbs_2 = \texttt{bbb} 和 s3=aacs_3 = \texttt{aac} 组成。对于第一个给定的学生,其字符串 q=aasddq = \texttt{aasdd},它与 aaa\texttt{aaa} 和 aac\texttt{aac} 的最长公共前缀长度均至少为 22,因此他的最终得分为 22。对于第二个学生,手册中唯一需要考虑的字符串是第一个 s1=aaas_1 = \texttt{aaa}。

随后发生了一次修改,规则手册中的字符串变为 s1=aaas_1 = \texttt{aaa}、s2=aacs_2 = \texttt{aac} 和 s3=bbbs_3 = \texttt{bbb}。对于第三个学生,s1s_1 和 s2s_2 与给定的 q=aatq = \texttt{aat} 均拥有长度为 22 的公共前缀,因此答案为 22。

翻译由 DeepSeek V4 Pro 完成