#P14695. [Bulgarian2019]Thracians
[Bulgarian2019]Thracians
题目描述
在一次考古发掘中,人们发现了第一份色雷斯文字的材料。由 Deni 领衔的语言学家团队立刻开始尝试破译它。结果这种文字出乎意料地复杂:色雷斯人在单词之间不留空格,更令人困惑的是,这些“单词”竟然是二维的。
经过长期努力,Deni 终于读懂了其中一个在文献中出现较为频繁的词。为了更快地翻译整份文献,她希望你编写一个程序,找出这个二维单词在整份文献中出现的位置。
形式化地说:
整份文献是一个由小写拉丁字母构成的 N x M 矩阵,而 Deni 已经破译出的单词是一个由小写拉丁字母构成的 R x C 矩阵。
请编写程序 Thracians,求出第二个矩阵在第一个矩阵中出现的次数。
这些出现的位置之间允许重叠。
输入格式
第一行包含两个正整数 R 和 C,表示已破译单词矩阵的大小。
接下来 R 行,每行一个长度为 C 的小写字母字符串。
接下来一行包含两个正整数 N 和 M,表示文献矩阵的大小。
最后 N 行,每行一个长度为 M 的小写字母字符串。
输出格式
输出一个整数,表示二维单词在文献中出现的次数。
数据范围
1 <= N, M <= 50001 <= R, C <= 100- 最大允许内存为
4MB
子任务
| 子任务 | 分值 | N, M |
R, C |
|---|---|---|---|
| 1 | 5 | <= 50 |
|
| 2 | 15 | <= 500 |
<= 100 |
| 3 | 30 | <= 2000 |
|
| 4 | 50 | <= 5000 |
|
对于某个子任务,只有当该子任务的所有测试点都通过时,才能获得该子任务的分数。
样例
输入
2 2
aa
ab
3 3
aaa
aab
aba
输出
2
样例解释
该单词出现在位置 (1, 2) 和 (2, 1)。
对应如下:
aaa aaa
aab aab
aba aba