题目描述
我们定义 T. M. 序列{Tn}为如下形式得布尔序列:
- T0=0;
- T2n=Tn;
- T2n+1=1−Tn。
这里我们给出T. M.序列得前若干项:01101001100101101001011001101001⋯。
T. M.序列是一个无限长度的序列,它有很多连续子序列。
例如0,1,10100,10011和011001都是它的连续子序列,然而111和1000却不是它的连续子序列。
现在给定一个布尔序列(01字符串)S和一个非负整数k,请统计一下一共有多少种T. M.序列的连续子序列T满足:
输入格式
第一行给定一个整数T,表示输入一共含有T组数据。
之后T行,每一行给定一个01字符串S(表示一个布尔序列)和一个非负正整数k,为给定的一组数据。
输出格式
对于每一组数据,输出一行并含有一个整数,表示满足条件的连续子序列个数。因为数值可能很大,请输出关于109+9取模后的值。
5
1001 3
11001 10
00111 10
0011 20
0 100
3
4
0
6
164
提示
子任务1:(20分)1≤T≤100,给定布尔序列长度不超过100,且0≤k≤100。
子任务2:(20分)1≤T≤100,给定布尔序列长度不超过100,且0≤k≤50000。
子任务3:(60分)1≤T≤100,给定布尔序列长度不超过100,且0≤k≤1018