luogu#P10310. 「Cfz Round 2」01 String
「Cfz Round 2」01 String
题目描述
定义一个 串是合法的,当且仅当它的首字符为 而尾字符为 。我们继而定义一个 串 的权值 为,将 划分若干个连续的合法子串的方案数。
例如 ,因为它仅可以被分割为 ;,因为它可以被分割为 共四种不同的方案;而 。
给定一个长度为 的 串 。定义 $f_k(l, r) = \begin{cases} f(S_{l\dots r}) & k = 0 \\ \displaystyle\sum_{l\leq l' \leq r' \leq r} f_{k-1}(l', r') & k \gt 0\end{cases}$,你需要求出 的值。
由于答案可能很大,所以你只需要输出答案对 取模的结果。
输入格式
本题有多组测试数据。
第一行输入一个整数 ,表示测试数据组数。
接下来依次输入每组测试数据。对于每组测试数据:
- 第一行输入两个整数 ,分别表示 和给定的参数。
- 接下来一行,输入一个长度为 的 串表示 。
输出格式
对于每组数据,输出一行一个整数,表示答案。
4
3 1
001
5 2
00101
30 10
010100110101001010010010011101
10 1000000000000
0010110101
2
19
926292963
340558843
提示
「样例解释 #1」
对于第 组数据,用表格的交叉点表示 的值:
/ | |||
/ |
/ | |||
/ |
其中:
- $f_1(2, 3)= f_0(2, 2) + f_0(2, 3) + f_0(3, 3)= 0 + 1 + 0 = 1$;
- $f_1(1, 3) = f_0(1, 1) + f_0(1, 2) + f_0(1, 3) + f_0(2, 2) + f_0(2, 3) + f_0(3, 3) = 0 + 0 + 1 + 0 + 1 + 0 = 2$;
所以答案为 。
「数据范围」
设 表示单个测试点中 的和。
对于所有数据,,,,,保证 中只包含 和 。
只有你通过本题的所有测试点,你才能获得本题的分数。