题库/Y1242

#Y1242. 字符串编码

    传统题 难度: 提高 标签>一本通KMP匹配与重叠出现前缀函数与失配回退
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1242 · 字符串编码

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制256 MiB
通过率—0 / 0 次提交

题目描述

小P最近又发明了一种新的字符串编码方法。 具体地,我们可以取若干对不相交的小写字母对(不相交指每个小写字母至多出现一次),然后对于一个由小写字母组成的字符串TT,我们将TT中出现在选中字母对中的字母替换为这个字母对中的另一个字母。 举个例子:我们选中了三对字母(l,r),(p,q)(l,r),(p,q)和(a,o)(a,o),那么,“parallelogramparallelogram”这个字符串将被编码为“qolorreraglomqolorreraglom”。 小P已经有了两个字符串SS和TT。他惊讶地发现,SS的许多子串竟然可以通过他所发明的新编码方法编码得到TT。于是小P想知道,SS中有多少个子串可以用如上所描述字符串编码方法编码得到TT。你能帮助他吗?

输入

第一行包含两个整数n,mn,m,表示SS与TT的串长。 接下来两行两个由小写字母构成的字符串SS与TT。

输出

第一行一个整数,表示满足条件的子串的个数kk。 接下来一行按照升序输出kk个整数,表示每个子串开始的位置(下标从11开始)。

输入样例

11 5
abacabadaba
acaba

输出样例

3
1 3 7

提示

【输入样例2】

21 13
paraparallelogramgram
qolorreraglom

【输出样例2】

1
5

【数据规模】 对于10%的数据,n,m≤10n,m≤10。 对于30%的数据,m≤50m≤50。 对于100%的数据,n,m≤2×105n,m≤2×10^5。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共8个测试点,非原站或官方原始数据。总分100分。