串串(string)
题目描述
给你一个长度为 n 的 01 串 S,你可以进行任意次在 S 任意位置插入或删除 00 、111、010101 中的任意一个串,有 q 次询问,问你可以得到多少种不同的长度为 m 的串。
输入格式
第一行两个正整数 n 和 q。
第二行一个 01 串 S。
接下来 q 行每行一个正整数 m 代表一次询问。
输出格式
对于每组询问,输出一行一个数,表示答案对 109+9 取模后的结果。
输入输出样例 1
string1.in |
string1.out |
6 3 010101 2 1 9 |
1 0 43 |
输入输出样例 2
string2.in |
string2.out |
20 5 10010010110010110011 766 383 596 818 980 |
817843350 545493736 423344958 583311893 302835785 |
说明/提示
子任务编号 |
分值 |
特殊性质 |
subtask 1 |
15 |
n≤10,m≤10 |
subtask 2 |
20 |
m≤10,保证 S 全为 0。 |
subtask 3 |
m≤10,保证存在一个 $T, |
subtask 4 |
subtask 5 |
10 |
n≤1000,m≤10 |
subtask 6 |
5 |
n=m,q≤1 |
subtask 7 |
10 |
无 |
对于全部的数据,1≤n≤106,1≤m≤109,1≤q≤104。