1552: 【提高】基因组分析

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:2

题目描述

乌龟得到了他的基因组,一个只包含“ATCG”四种字母的字符串。乌龟想起科学家说,基因组中很多片段都多次重复出现,而且这种重复是很有意义的,于是他想计算一下自己基因组里片段的重复情况。

给定一个基因组,其中一个长度为k的子串称为一个“k-片段”。乌龟希望你计算出基因组中不同的k-片段数量。例如,基因组“TACAC”的2-片段有“TA” ,“AC”,“CA”,“AC”,其中不同的片段数量有3个。

输入

整数n,k,R1,表示基因组的长度,片段的长度和数列生成的首项。基因组第i(1 in)个字符在Ri mod 4的值为0,1,2,3时分别为A, T,C,G

试题中使用的生成数列R定义如下:整数0≤R1<201701在输入中给出。对于i> 1,Ri =(Ri-1×6807 + 2831)mod 201701。

输出

一个整数,表示不同的k-片段的数量

样例输入 复制

20 2 37

样例输出 复制

10

提示

数据规模
30%的数据满足n≤10;
100%的数据满足1≤n≤20,1≤k≤10;

来源
2017江苏省青少年信息学奥林匹克小学组竞赛复赛