连续子序列

连续子序列

测试数据来自 system/2056

描述

我们定义 T. M.\textbf{T. M.} 序列{Tn}\{T_n\}为如下形式得布尔序列:

  • T0=0T_0=0
  • T2n=TnT_{2n}=T_n;
  • T2n+1=1TnT_{2n+1}=1-T_n

这里我们给出T. M.\textbf{T. M.}序列得前若干项:0110100110010110100101100110100101101001100101101001011001101001\cdots

T. M.\textbf{T. M.}序列是一个无限长度的序列,它有很多连续子序列。
例如001110100101001001110011011001011001都是它的连续子序列,然而11111110001000却不是它的连续子序列。

现在给定一个布尔序列(01字符串)SS和一个非负整数kk,请统计一下一共有多少种T. M.\textbf{T. M.}序列的连续子序列TT满足:

  • SSTT的前缀;
  • TT是由SS额外在右侧添加了恰好kk项形成的。

格式

输入格式

第一行给定一个整数TT,表示输入一共含有TT组数据。

之后TT行,每一行给定一个01字符串SS(表示一个布尔序列)和一个非负正整数kk,为给定的一组数据。

输出格式

对于每一组数据,输出一行并含有一个整数,表示满足条件的连续子序列个数。因为数值可能很大,请输出关于109+910^9+9取模后的值。

样例1

样例输入1

5
1001 3
11001 10
00111 10
0011 20
0 100

样例输出1

3
4
0
6
164

限制

数据规模

子任务11:(2020分)1T1001\le T\le 100,给定布尔序列长度不超过100100,且0k1000\le k\le 100

子任务22:(2020分)1T1001\le T\le 100,给定布尔序列长度不超过100100,且0k500000\le k\le 50000

子任务33:(6060分)1T1001\le T\le 100,给定布尔序列长度不超过100100,且0k10180\le k\le 10^{18}

时限

1s

内存限制

默认

信息

ID
1105
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者