QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 140

#13778. OOP

統計

小 Matej 正在做面向对象程序设计(OOP)的实验课练习,他在解决其中一个子任务时遇到了困难。

给他一个包含 $N$ 个单词的集合。同时还给他 $Q$ 个查询,每个查询是一个模式串。模式串由单个字符 * 和英文小写字母组成。例如:*kul*toana*

如果存在一个字母序列(可以为空),使得将字符 * 替换为该序列后,模式串与该单词完全相同,则称该模式串覆盖了该单词。你需要输出每个模式串覆盖了多少个单词。

输入格式

第一行包含两个整数 $N$ 和 $Q$($1 \le N, Q \le 100\,000$)。

接下来的 $N$ 行,每行包含一个由英文小写字母组成的单词。

接下来的 $Q$ 行,每行包含一个模式串,你需要输出第一个集合中有多少个单词被该模式串覆盖。

所有单词和模式串的总字符数将小于 $3\,000\,000$。

输出格式

输出 $Q$ 行,第 $k$ 行包含第 $k$ 个模式串覆盖的单词数量。

子任务

在占总分 $40\%$ 的测试数据中,额外满足 $1 \le N, Q \le 1000$。

样例

输入 1

3 3
aaa
abc
aba
a*a
aaa*
*aaa

输出 1

2
1
1

输入 2

5 3
eedecc
ebdecb
eaba
ebcddc
eb
e*
*dca
e*c

输出 2

5
0
2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.