最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 斐波那契串

C++ 少儿编程 1125浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

小Z学起了斐波那契数列。

$F[0]=0$

$F[1]=1$

$F[i]=F[i-2]+F[i-1]$

小Z突发奇想,要是这个$F$是一个$string$类型该多有趣。

$S[0]=“0”$

$S[1]=“0”$

$S[i]=S[i-2]S[i-1]$ (表示连接$S[i-2]$和$S[i-1]$两个字符串)。

小Z经过科学的计算后发现$S[N]$会很长很长,但是他只想知道一个问题的答案,就是小Z心中的$0/1$串$T$在$S[N]$中出现了多少次。

答案对$P$取模。

【输入】

第一行三个整数$N,M,P$,$N$如题中所述,$M$为串$T$的长度,$P$为需要取模的数。

第二行为一个长度为$M$的$0/1$串。

【输出】

仅包含一个整数,为出现次数模$P$之后的值。

【输入样例】

7 3 100
101

【输出样例】

8

【提示】

【数据规模】

对于30%的数据,$N≤20$。

对于60%的数据,$N≤10^5,M≤200$。

对于100%的数据,$N≤10^9,M≤10000,P≤10^9$。

您必须 登录 才能发表评论!