#B3733. [信息与未来 2017] 基因组分析

[信息与未来 2017] 基因组分析

题目描述

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

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


试题中使用的生成数列 RR 定义如下:整数 0R1<2017010\leq R_1\lt 201701 在输入中给出。

对于 i>1,Ri=(Ri1×6807+2831)mod201701i\gt 1,R_i=(R_{i−1}\times 6807+2831)\mod 201701

输入格式

整数 n,k,R1n,k,R_1,表示基因组的长度、片段的 长度和数列生成的首项。基因组第 i(1in)i(1\leq i\leq n) 个字符在 Rimod4R_i \mod 4 的值为 0,1,2,30,1,2,3 时分别为 A,T,C,G\tt{A,T,C,G}

输出格式

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

20 2 37
10

提示

30%30\% 的数据满足 n100n\leq100

100%100\% 的数据满足 1n105,1k101\leq n\leq 10^5,1\leq k\leq 10

本题原始满分为 20pts20\text{pts}