T467532 [2024迎新马拉松] 字典
题目描述
给定一本字典。字典共包含 $N$ 个单词 $w_1, w_2, \ldots, w_N$。这些单词两两不同,并且全由小写字母组成。
现在有 $Q$ 个单词查找任务。每个任务会指定字母串 $s_{i1}$ 与 $s_{i2}$,并请你计算字典中有多少单词的前缀为 $s_{i1}$ 且后缀为 $s_{i2}$。
输入格式
第一行包含两个整数 $N, Q$,表示字典大小、任务数量。
接下来 $N$ 行,每行一个小写字母串 $w_i$,描述字典中的单词。
最后 $Q$ 行,每行一个查找串 $s_i$,依次描述每一个单词查找任务。$s_i$ 中**恰好**包含一个星号 `*`。星号之前的部分表示指定的前缀 $s_{i1}$,之后的表示后缀 $s_{i2}$。
输出格式
共 $Q$ 行,每行一个整数,依次表示相应查找任务的答案。
说明/提示
【样例解释#$1$】
字典中只有单词 `abcc`。所有查找任务均能发现这一单词:
- `abc` 是该单词的前缀,`c` 是该单词的后缀;
- `abc` 是该单词的前缀,`cc` 是该单词的后缀;
- 空串是该单词的前缀,`cc` 是该单词的后缀。
【样例解释#$2$】
共有 $5$ 个单词,$3$ 个单词查找任务:
- 任务 `*uwu` 能够查找到一个单词 `siyishuwu`;
- 任务 `*` 能够查找到所有单词,共 $5$ 个;
- 任务 `s*` 能够查找到两个单词 `siyishuwu`、`shaonianhu`。
【数据规模】
本题共有三个子任务,每个子任务捆绑计分:
- 子任务一,占分 $15\%$,保证 $\sum |w_i|,\sum |s_i|\le 100$。
- 子任务二,占分 $30\%$,星号 `*` 只会在 $s_i$ 的开头或末尾。
- 子任务三,占分 $55\%$,无特殊约定。
对于全部测试数据,保证 $1 \le N, Q, |w_i|, |s_i| \le 10^6$,$1 \le \sum |w_i|, \sum |s_i| \le 10^6$。