#P16050. [Oni2024国家队选拔赛]Piramida金字塔

    ID: 15261 传统题 1500ms 1024MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2200图论拓扑排序动态规划排序

[Oni2024国家队选拔赛]Piramida金字塔

题目描述

骑着骆驼,在沙尘暴中向前……

Robert 在沙漠中迷路了。由于沙尘暴,他看不清远处。

沙漠可以表示为一个 NNMM 列的字符矩阵。矩阵中的每个格子表示一种地标,例如金字塔、迷宫遗迹、仙人掌、沙丘等,用一个小写英文字母表示。

为了让 Georgian 判断自己在哪里,Robert 会把当前格子的字母发给 Georgian,然后继续移动以获取更多信息。更准确地说,Robert 从某个任意格子开始,先发送该格子的字母。之后他每次可以向北、东、南、西四个方向之一移动到相邻格子;每进入一个新格子,就发送该格子的字母。Robert 可以多次经过同一个格子,并且每次经过都会发送该格子的字母。

Georgian 发现 Robert 似乎中了诅咒,他发送的字符串总是循环重复的。也就是说,Robert 发送的字符串形如

SK,S\cdot K,

即字符串 SS 连续拼接 KK 次。

请帮助 Georgian 判断 Robert 最后可能位于哪些位置。

任务

给定沙漠地图矩阵、字符串 SS,以及 QQ 次询问 KiK_i

对于每次询问,回答:若 Georgian 收到的字符串是 SS 重复 KiK_i 次,那么 Robert 最后可能位于多少个不同的格子。

称 Robert 最后可能位于某个格子,当且仅当存在一条从任意起点出发、始终不走出矩阵的路径,使得沿途经过格子的字母序列恰好等于 SS 重复 KiK_i 次,并且路径最后停在该格子。

注意:路径的第一个格子也会贡献一个字符,因此若 S=L|S|=L,询问 KK 对应的路径字符数为 KLK\cdot L

输入格式

第一行包含两个整数 N,MN,M,表示矩阵的行数和列数。

接下来 NN 行,每行是一个长度为 MM 的小写字母串,表示矩阵的一行。

N+2N+2 行包含字符串 SS

N+3N+3 行包含一个整数 QQ,表示询问次数。

下一行包含 QQ 个整数 K1,K2,,KQK_1,K_2,\ldots,K_Q

输出格式

输出一行,包含 QQ 个整数,依次表示每次询问的答案,整数之间用空格分隔。

数据范围与子任务

  • 2N,M2002\le N,M\le 200
  • 1S2001\le \lvert S\rvert\le 200
  • 1Q1000001\le Q\le 100000
  • 1Ki1091\le K_i\le 10^9,对所有 1iQ1\le i\le Q
  • KiKi+1K_i\le K_{i+1},对所有 1i<Q1\le i<Q。也就是说,询问中的 KK 按非降序给出。
子任务 分值 限制
1 6 N,M,S5N,M,\lvert S\rvert\le 5Q=1Q=1K1=1K_1=1
2 13 S25\lvert S\rvert\le 25Q,Ki100Q,K_i\le 100
3 10 N,M,S20N,M,\lvert S\rvert\le 20
4 9 N,M,S55N,M,\lvert S\rvert\le 55
5 16 N,M,S100N,M,\lvert S\rvert\le 100
6 46 无额外限制

样例 1

输入

3 4
cbaz
azzz
bczz
abc
3
1 2 3

输出

2 1 0

解释

第一问中,Robert 观察到字符串 abc。最后他可能位于第 11 行第 11 列,或第 33 行第 22 列,因此答案为 22

第二问中,Robert 观察到字符串 abcabc。最后他只可能位于第 33 行第 22 列,因此答案为 11

第三问中,Robert 观察到字符串 abcabcabc。矩阵中不存在任何格子可以作为结束位置,因此答案为 00

样例 2

输入

1 5
aabaa
aaab
2
1 2

输出

1 1

解释

第一问中,Robert 观察到字符串 aaab。他可以从第 22 列或第 44 列开始,最终都会到达第 33 列,因此答案为 11。注意如果从第 11 列或第 55 列开始,则不存在符合该字符串的路径。

第二问中,Robert 观察到字符串 aaabaaab。所有合法路径最终都会到达第 33 列,因此答案仍为 11