编程题
### 问题描述 一个二进制字符串如果 "$01$" 子串数量和 "$10$" 子串数量相等,则称其为美丽的。 大衣有一个长度为 $N​$ 的二进制字符串 $S​$,他想知道字符串 $S​$ 中有多少个非空子序列是美丽的。 答案可能很大,将其对 $10^9+7​$ 取模。 ### 输入格式 第一行输入一个正整数 $T$ 表示测试数据的组数。 接下来 $T$ 组测试数据每组输入两行: - 第一行输入一个正整数 $N$ 表示二进制字符串 $S$ 的长度。 - 第二行输入一个长度为 $N$ 的二进制字符串 $S$。 ### 输出格式 对于每组测试数据,输出一个整数表示字符串 $S$ 中美丽的非空子序列的数量,答案可能很大,将其对 $10^9+7$ 取模,并换行。 ### 样例输入1 ```text 4 2 10 3 110 5 11111 8 10100110 ``` ### 样例输出1 ```text 2 4 31 122 ``` ### 说明 样例 $1$:字符串 $S$ 中美丽的非空子序列有 `{1,0}`,共 $2$ 个。 样例 $2$:字符串 $S$ 中美丽的非空子序列有 `{1,1,0,11}`,共 $4$ 个。 ### 评测数据规模 对于所有的评测数据,$1\le T\le 20$,$1\le N\le 10^4$,$S_i$ 为 $0$ 或 $1$。
查看答案
赣ICP备20007335号-2