#CSPS202503. 【CSP-S】-2025-谐音替换

    ID: 353 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CSP-S2025字符串哈希Trie最长公共前缀最长公共后缀离线计数

【CSP-S】-2025-谐音替换

当前没有测试数据。

本题暂未上传测试数据,目前仅供阅读与练习。

本站练习请使用标准输入/输出;原卷中的文件名仅作原始资料参考。

题目描述

给定 nn 个字符串二元组 (si,1,si,2)(s_{i,1},s_{i,2}),满足 ∣si,1∣=∣si,2∣|s_{i,1}|=|s_{i,2}|。

对字符串 ss 进行一次替换:选择它的一个子串 yy,并选择满足 y=si,1y=s_{i,1} 的二元组,将这个子串替换为 y′=si,2y'=s_{i,2}。也就是说,若 s=x+y+zs=x+y+z,则替换后为 s′=x+y′+zs'=x+y'+z,其中 x,zx,z 可以为空,++ 表示拼接。

共有 qq 个询问,每个询问给出两个不同的字符串 tj,1,tj,2t_{j,1},t_{j,2},求有多少种对 tj,1t_{j,1} 的一次替换,能够得到 tj,2t_{j,2}。

两种替换不同,当且仅当被替换子串的位置不同,或采用的二元组下标 ii 不同。

输入格式

第一行两个正整数 n,qn,q。接下来 nn 行,每行两个字符串 si,1,si,2s_{i,1},s_{i,2}。随后 qq 行,每行两个字符串 tj,1,tj,2t_{j,1},t_{j,2}。

输出格式

输出 qq 行,每行一个非负整数,表示对应询问的替换方案数。

样例 1

输入

4 2
xabcx xadex
ab cd
bc de
aa bb
xabcx xadex
aaaa bbbb

输出

2
0

样例 2

输入

3 4
a b
b c
c d
aa bb
aa b
a c
b a

输出

0
0
0
0

数据范围

设 L1=∑i=1n(∣si,1∣+∣si,2∣)L_1=\sum_{i=1}^n(|s_{i,1}|+|s_{i,2}|),L2=∑j=1q(∣tj,1∣+∣tj,2∣)L_2=\sum_{j=1}^q(|t_{j,1}|+|t_{j,2}|)。保证 1≤n,q≤2×1051\le n,q\le2\times10^5,2≤L1,L2≤5×1062\le L_1,L_2\le5\times10^6;所有字符串仅含小写英文字母,各二元组等长,每个询问的两个字符串不同。

原卷完整题面

以下保留原卷的图示、完整样例解释、分档约束和特殊性质,便于核对。原卷中引用的外部样例文件未随本次题面上传。

下载原卷题面 PDF

原卷题面第 1 页

原卷题面第 2 页

原卷题面第 3 页