loj#P2252. 「ZJOI2017」多项式

「ZJOI2017」多项式

题目描述

九条可怜最近研究了一下多项式在系数模 22 意义下的性质。她发现可以用多项式在模 22 意义下的乘法得到一个很长的字符串:

对于一个 nn 次的系数为 0011 的多项式 f(x)f(x),我们在模 22 意义下计算 g(x)=f(x)mg(x) = f(x)^m,则 g(x)g(x) 为一个 nmnm 次的多项式,它有 nm+1nm + 1 个系数,将这些系数从高位到低位写下来,就可以得到一个长度为 nm+1nm + 10101 字符串。

例如对于多项式 f(x)=x3+x+1f(x) = x^3 + x + 1,计算 $g(x) = f(x)^3 = x^9 + x^7 + x^6 + x^5 + x^2 + x + 1$,这样我们得到了一个长度为1010 的字符串 10111001111011100111

现在可怜有一个次数为 nn 的多项式 f(x)f(x),整数 m,L,Rm, L,R 以及一个长度为 KK0101tt。令 ssf(x)mf(x)^m 得到的字符串,s[L,R]s[L,R]ss 的第 LL 个字符到第 RR 个字符,可怜想要知道 tts[L,R]s[L,R] 中出现了多少次。

输入格式

第一行输入一个整数 TT 表示数据组数。

每组数据第一行输入五个整数 n,m,K,L,Rn, m,K, L,R

第二行输入一个长度为 n+1n + 10101 串表示多项式 f(x)f(x) 的系数,其中第 ii 位表示 f(x)f(x) 的第 ni+1n-i + 1 次系数。

第三行输入一个长度为 KK 的字符串表示字符串 tt

输出格式

对于每组数据输出一个整数表示答案。

1
3 3 2 1 10
1011
01
2

数据范围与提示

测试点编号 nn mm KK 其他约定
11 18\le 18 500\le 500 18\le 18
22 2×105\le 2\times 10^5
33
44 1016\le 10^{16} RL104R-L\le 10^4
55
66 L=1,R=nm+1L=1,R=nm+1
77
88
99
1010

对于100%100\% 的数据,保证 1T51\leq T\leq 51LRnm+11\leq L\leq R \leq nm + 1