题目链接

传送门

Description

  阿申准备报名参加GT考试,准考证号为N位X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。他的不吉利数学A1A2...Am(0<=Ai<=9)有M位,不出现是指X1X2...Xn中没有恰好一段等于A1A2...Am. A1和X1可以为0

Input

  第一行输入N,M,K.接下来一行输入M位的数N<=10^9,M<=20,K<=1000

Output

  阿申想知道不出现不吉利数字的号码有多少种,输出模K取余的结果.

Sample Input

4 3 100

111

Sample Output

81

题解

如果这个题n的范围小一点
我们轻松想到一个DP
表示这个字符串i位的后j位是不吉利字符串的一部分
那么答案就是
这个dp的转移要用到一个辅助数组
我们设表示表示模板串的前缀 i 可以转移到前缀 j 的方法数(注意它可能可以转移到很多个串)
那么这个时候我们可以暴力转移或者是用next数组进行转移
毕竟m太小用这两个基本没什么区别
这就是dp的转移式
最后一步看到n的数据范围爆炸
上一波矩乘优化 AC此题

代码