P15198 [SWERC 2018] Crosswords
题目描述
为了吸引更多游客来到巴黎,Anne 计划在卢浮宫的外墙举办一场盛大的声光秀。外墙上有多层窗户,且窗户在垂直方向上对齐。因此,Anne 想到通过窗户展示巨型字母,每个窗户一个字母,从而同时在水平和垂直方向上形成单词。
在给定的外墙上,窗户排列成一个 $N$ 行 $M$ 列的矩形网格。Anne 收集了一个包含 $A$ 个 $N$ 字母单词的列表和一个包含 $B$ 个 $M$ 字母单词的列表。她想知道有多少种方式在该网格上同时水平显示 $N$ 个长度为 $M$ 的单词和垂直显示 $M$ 个长度为 $N$ 的单词。
输入格式
输入包含以下内容:
- 第一行包含两个整数 $N$ 和 $A$,用一个空格分隔。
- 第二行包含两个整数 $M$ 和 $B$,用一个空格分隔。
- 接下来的 $A$ 行包含 $N$ 字母单词,每行一个。
- 接下来的 $B$ 行包含 $M$ 字母单词,每行一个。
输出格式
输出应包含一行,内容为一个整数,表示不同单词网格的总数。
说明/提示
#### 样例解释 1
解决方案如下:
| s | a | y | s |
|:-:|:-:|:-:|:-:|
| a | r | e | a |
| t | e | s | t |
| w | a | y | s |
|:-:|:-:|:-:|:-:|
| a | r | e | a |
| r | e | s | t |
#### 样例解释 2
解决方案如下:
| i | t | s |
|:-:|:-:|:-:|
| t | h | e |
| s | e | t |
| r | a | n |
|:-:|:-:|:-:|
| a | g | o |
| n | o | w |
### 数据范围
输入满足 $2 \leq N, M \leq 4$ 且 $1 \leq A \times B \leq 1008016$。
单词来自英语词典。两个列表中的单词均不重复。单词由 `'a'`(ASCII 码 97)到 `'z'`(ASCII 码 122)的小写字母组成。
第一个列表中的单词将垂直显示,从上到下。第二个列表中的单词将水平显示,从左到右。同一个单词可以在构建网格时多次使用,即如果它属于第一个(或第二个)单词列表,它可以出现在多个列(或行)中。
当 $N = M$ 时,不允许将第一个列表中的单词水平使用(除非它们也出现在第二个列表中),也不允许将第二个列表中的单词垂直使用(除非它们也出现在第一个列表中)。
翻译由 DeepSeek 完成