3021: 三组基因
内存限制:256 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:0
解决:
题目描述
小Y是个灵魂重组师,他每天要和各种各样的基因玩耍。
这天他正在重组三组基因,三组基因用由小写英文字母组成的字符串 S1,S2,S3 表示。他重组的方式为提取出三个基因中相同的部分,并加以改 造。显然他有非常多种选择方式进行提取,现在他想知道,对于特定的提取 长度 l,他有多少种方式进行提取,提取方式不同当且仅当存在某个基因提 取的位置不同。(可以通过样例数据来加深理解。)
输入
共三行,每行一个由小写英文字母组成的字符串。
输出
共 min(|S1|,|S2|,|S3|) 行,每行输出一个整数,第 i 行表示提取长度为 i 的提取方法数。答案模 1000000007(109 + 7)。
样例输入 复制
aacbc
baac
aacaa
样例输出 复制
18
3
1
0
提示
【样例解释】
长度为 2 时三种提取方法:
1 aacbc, baac, aacaa
2 aacbc, baac, aacaa
3 aacbc, baac, aacaa
【数据范围】
20% 的数据:1 ≤|S1|,|S2|,|S3|≤ 10
60% 的数据:1 ≤|S1|,|S2|,|S3|≤ 1000
100% 的数据:1 ≤|S1|,|S2|,|S3|≤ 105