luogu#P16827. [AFOI 2025] D.谐音替换

[AFOI 2025] D.谐音替换

背景

时光荏苒,那个关于“谐音替换”的下午,依旧清晰地印在小 ω\omega 的脑海里。

那时的他,执着于精确的匹配:必须完全相同的子串,才能进行替换。然而,现实往往不尽如人意,细微的差别就足以让一切努力付诸东流。

多年以后,当小 ω\omega 再次翻开语言学笔记,他对“谐音”有了新的理解:何必苛求完全一致?只需拥有相同的前后,便已足够谐音。就像回忆中的点滴,不必完整重现,只需一个开头或一个结尾,便能串联起整个故事。

题目描述

ω\omega 是一名喜欢语言学的算法竞赛选手。在语言学中,谐音替换是指将原有的字词替换为读音相同或相近的字词。小 ω\omega 发现,谐音替换的过程可以用字符串的前缀或后缀关系来进行描述。具体地,小 ω\omega 将谐音替换定义为以下字符串问题:

  • 字符串 XXYY 的谐音替换,当且仅当 XXYY前缀,或 XXYY后缀
  • 记语言集合为 S={S1,S2,,Sn}S = \{S_1, S_2, \dots, S_n\}。字符串 TT 的一个谐音三元组是指将 TT 分成三个非空的连续段 T=A+B+CT = A + B + C(其中 ++ 表示字符串拼接),使得每一段 A,B,CA, B, C 均是 SS 中的某个字符串的谐音替换,每一种划分方案对应一个字符串三元组 (A,B,C)(A,B,C),我们称这个三元组为字符串 TT 的一个谐音三元组。 两个谐音三元组 (A1,B1,C1)(A_1, B_1, C_1)(A2,B2,C2)(A_2, B_2, C_2) 本质不同,当且仅当 A1A2A_1 \neq A_2B1B2B_1 \neq B_2C1C2C_1 \neq C_2

现在给出 nn 个字符串 S1,S2,,SnS_1, S_2, \dots, S_n 作为语言集合,再给出 mm 个字符串 T1,T2,,TmT_1, T_2, \dots, T_m 作为待分析的语言资料。
请对于每个 TiT_i,帮助小 ω\omega 求出有多少种本质不同的谐音三元组方案。

输入格式

第一行包含两个整数 nnmm1n,m1051 \le n, m \le 10^5)。

接下来 nn 行,每行一个字符串 SiS_i,表示语言集合中的单词。

接下来 mm 行,每行一个字符串 TiT_i,表示待分析的资料。

输出格式

输出 mm 行,其中第 jj1jm1 \le j \le m)行包含一个非负整数,表示 TjT_j 有多少种本质不同的谐音三元组。

1 1
abbcabb
abbcabbcabb
12

提示

【样例1解释】

1212 种本质不同的谐音三元组如下:

  • (a,bbcabb,cabb)(\text{a},\text{bbcabb},\text{cabb})
  • (ab,bcabb,cabb)(\text{ab},\text{bcabb},\text{cabb})
  • (abb,cabb,cabb)(\text{abb},\text{cabb},\text{cabb})
  • (abbc,a,bbcabb)(\text{abbc},\text{a},\text{bbcabb})
  • (abbc,ab,bcabb)(\text{abbc},\text{ab},\text{bcabb})
  • (abbc,abb,cabb)(\text{abbc},\text{abb},\text{cabb})
  • (abbc,abbc,abb)(\text{abbc},\text{abbc},\text{abb})
  • (abbc,abbca,bb)(\text{abbc},\text{abbca},\text{bb})
  • (abbc,abbcab,b)(\text{abbc},\text{abbcab},\text{b})
  • (abbca,b,bcabb)(\text{abbca},\text{b},\text{bcabb})
  • (abbca,bb,cabb)(\text{abbca},\text{bb},\text{cabb})
  • (abbcab,b,cabb)(\text{abbcab},\text{b},\text{cabb})

【数据范围】

X|X| 为字符串 XX 的长度,L1=i=1nSiL_1 = \sum\limits_{i = 1}^{n} |S_i|L2=i=1mTiL_2 = \sum\limits_{i = 1}^{m} |T_i|。对于所有测试数据,保证:

  • 1n,m1051 \le n , m \le 10^5
  • 1Si1 \le |S_i|3Ti3 \le |T_i|
  • 1L15×1051 \le L_1 \le 5 \times 10^53L23×1053 \le L_2 \le 3 \times 10^5
  • 对于所有 1in1 \le i \le nSiS_i 均仅包含大小写英文字母。
  • 对于所有 1im1 \le i \le mTiT_i 均仅包含大小写英文字母。
测试点编号 n,mn , m \le L1L_1 L2L_2 \le 特殊性质
1,21, 2 100100 200200
353 \sim 5 10310^3 20002\,000 ^
66 ^ 10510^5 A、B
7,87, 8 10410^4 ^ A
9,109, 10 10510^5 B
11,1211, 12 ^ 2×1052 \times 10^5
13,1413, 14 5×1055 \times 10^5 3×1053 \times 10^5 A
15,1615, 16 ^ B
172017 \sim 20

特殊性质 A:m=1m = 1

特殊性质 B:对于所有 1in1 \le i \le nSiS_i 均以 z 结尾。对于所有 1im1 \le i \le mTiT_i 均不包含 z