CF596E Wilbur and Strings
题目描述
小猪 Wilbur 现在想要玩字符串。他找到一个由 $0$ 到 $9$ 组成的 $n$ 行 $m$ 列的表格,行编号为 $1$ 到 $n$,列编号为 $1$ 到 $m$。Wilbur 从某个格子开始,并按照一定的规则移动。如果他当前在 $(x, y)$ 格子,且该格子上的数字为 $d\ (0\leq d\leq 9)$,那么他必须移动到 $(x+a_d,\,y+b_d)$,如果该格子在表格内就移动,否则就留在原地。同时,每次 Wilbur 移动前,可以选择是否要把当前格子的数字写在白板上。所有写到白板上的数字组成一个字符串。每当新数字写入时,都在当前字符串的末端追加。
Wilbur 有 $q$ 个他关心的字符串。对于每个字符串 $s_i$,Wilbur 想知道是否存在一个起始位置 $(x, y)$,使得通过有限次移动后,白板上可以写出该字符串 $s_i$。
输入格式
输入的第一行为三个整数 $n$、$m$ 和 $q$($1\leq n,m,q\leq 200$),分别表示表格的尺寸以及要处理的字符串数量。
接下来的 $n$ 行,每行有 $m$ 个数字,表示整个表格。
随后有 $10$ 行,第 $i$ 行包含 $a_{i-1}$ 和 $b_{i-1}$($-200\leq a_i,b_i\leq 200$),即 Wilbur 从数字 $i-1$ 所在格子出发时采用的移动向量。
接下来有 $q$ 行,每行包含一个仅由 $0$ 到 $9$ 组成的字符串 $s_i$。保证所有 $q$ 个字符串的总长度不超过 $1000000$。
输出格式
对于每个字符串,如果 Wilbur 能选定某个 $(x,y)$,使得经过有限次移动后白板上能写下该串,则输出 "YES";否则输出 "NO"。
说明/提示
在第一个样例中,表格为 $1\times 1$,唯一元素是 $0$。唯一的移动只能在原地。第一个字符串可以通过不断在该格子写 $0$ 得到。而第二个字符串无法得到,因为表中没有 $2$。
由 ChatGPT 5 翻译