New Online Judge
主页
问题
来源/分类
竞赛&作业
状态
排名
常见问答
登录
注册
1304: [蓝桥杯2016决赛]碱基
内存限制:256 MB
时间限制:1 S
标准输入输出
题目类型:传统
评测方式:文本比较
上传者:
提交:153
通过:3
提交
提交记录
统计
题目描述
生物学家正在对n个物种进行研究。
其中第i个物种的DNA序列为s[i],其中的第j个碱基为s[i][j],碱基一定是A、T、G、C之一。
生物学家想找到这些生物中一部分生物的一些共性,他们现在关注那些至少在m个生物中出现的长度为k的连续碱基序列。
准确的说,科学家关心的序列用2m元组(i1,p1,i2,p2....im,pm)表示,满足:
1<=i1<i2<....<im<=n;且对于所有q(0<=q<k), s[i1][p1+q]=s[i2][p2+q]=....=s[im][pm+q]。
现在给定所有生物的DNA序列,请告诉科学家有多少的2m元组是需要关注的。
如果两个2m元组有任何一个位置不同,则认为是不同的元组。
输入格式
输入存在多组测试数据,对于每组测试数据:
输入的第一行包含三个整数n、m、k,两个整数之间用一个空格分隔,意义如题目所述。
接下来n行,每行一个字符串表示一种生物的DNA序列。
DNA序列从1至n编号,每个序列中的碱基从1开始依次编号,不同的生物的DNA序列长度可能不同。
输出格式
对于每组测试数据:输出一个整数,表示关注的元组个数。
答案可能很大,你需要输出答案除以1000000007的余数。
输入样例
复制
3 2 2 ATC TCG ACG 4 3 3 AAA AAAA AAA AAA
输出样例
复制
2 7