{anonymous-user X}: “歪比歪比”
{anonymous-user Y}: “歪比巴伯”
众所周知,大司老师非常擅长加密通话,现小法司得到两个字符串 sss 和 ttt,它们的长度分别为 n,mn, mn,m。
已知大司老师可能将 ttt 中某些字符进行更换,而小法司已经拿到了大司老师关于 262626 个字母的替换规则表 aaa,小法司想找到所以满足如下条件的 sss 的子串 s′s's′:
(如 xxx 为一个字符串,我们记 xix_ixi 为 xxx 中的第 iii 个字符。)
注:每种字符在满足替换条件的前提下在整个匹配过程中可以替换为不同的其他字符,如 aaa 可以替换为 bcd(前提是 a 能替换为 b/c/d)。
aaa
bcd
a
b
c
d
小法司想找到所有这样的子串 s′s's′。
第一行有两个整数 n,m(1≤n,m≤105)n, m(1 \leq n, m \leq 10^5)n,m(1≤n,m≤105),表示字符串 sss 和 ttt 的长度。
接下来两行分别表示两个字符串 s,ts,ts,t, 字符串中的所有字符都是英文小写字母。
接下来输入一个 26×2626\times 2626×26 的矩阵 aaa,aij=1a_{ij} = 1aij=1 表示 iii 代表的字符可以替换为 jjj 代表的字符(111 代表字符 a, 222 代表字符 b,333 代表字符 c …\ldots… 262626 代表字符z),而 aij=0a_{ij} = 0aij=0 表示不能进行这样的替换。
z
输入数据保证 aii=1a_{ii} = 1aii=1。
输出一个长度为 n−m+1n - m + 1n−m+1 的字符串,其中第 iii 位为 111 表示以第 iii 位为起始长度为 mmm 的子串 s′s's′ 能与 ttt 匹配上,第 iii 位为 000 则表示不能。
6 3 abcabc abc 10000000000000000000000000 01000000000000000000000000 00100000000000000000000000 00010000000000000000000000 00001000000000000000000000 00000100000000000000000000 00000010000000000000000000 00000001000000000000000000 00000000100000000000000000 00000000010000000000000000 00000000001000000000000000 00000000000100000000000000 00000000000010000000000000 00000000000001000000000000 00000000000000100000000000 00000000000000010000000000 00000000000000001000000000 00000000000000000100000000 00000000000000000010000000 00000000000000000001000000 00000000000000000000100000 00000000000000000000010000 00000000000000000000001000 00000000000000000000000100 00000000000000000000000010 00000000000000000000000001
1001