CF946F Fibonacci String Subsequences
题目描述
给定一个二进制字符串 $s$(该字符串的每个字符都是 $0$ 或 $1$)。
我们定义字符串 $t$ 的“代价”为 $s$ 在 $t$ 中出现的次数。例如,如果 $s$ 为 $11$,$t$ 为 $111011$,那么 $t$ 的代价为 $3$。
我们还定义斐波那契字符串序列如下:
- $F(0)$ 为 $0$;
- $F(1)$ 为 $1$;
- 当 $i>1$ 时,$F(i)=F(i-1)+F(i-2)$,其中 $+$ 表示两个字符串的拼接。
你的任务是计算 $F(x)$ 的所有子序列的代价之和。由于答案可能很大,请输出对 $10^9+7$ 取模后的结果。
输入格式
第一行包含两个整数 $n$ 和 $x$($1 \leq n \leq 100$,$0 \leq x \leq 100$),分别表示 $s$ 的长度和你关心的斐波那契字符串的下标。
第二行包含字符串 $s$,由 $n$ 个字符组成,每个字符都是 $0$ 或 $1$。
输出格式
输出一个整数,表示 $F(x)$ 的所有子序列的代价之和,对 $10^9+7$ 取模。
说明/提示
由 ChatGPT 4.1 翻译