百度之星 1005寻找母串

来源:互联网 发布:charles游戏修改数据 编辑:程序博客网 时间:2024/05/23 15:29

寻找母串

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 125    Accepted Submission(s): 68


Problem Description
对于一个串S,当它同时满足如下条件时,它就是一个01偏串:
1、只由0和1两种符组成;
2、在S的每一个前缀中,0的个数不超过1的个数;
3、S中0的个数和1的个数相等。

现在给定01偏串S,请计算一下S在所有长度为n的01偏串中作为子串出现的次数的总和。
由于结果比较大,结果对1e9+7取余后输出。

样例解释:
在第二个样例中,长度为4的偏串共两个1010,1100。10在1010中出现了两次,在1100中出现了1次。所以答案是3。
 

Input
第一行给出一个整数T(1<=T<=40),表示测试数据的数目。
每一组测试包含一个整数n和字符串S,中间用空格分开。(1<=|S|<=100000,1<=n<=1000000000)

输入保证S是一个01偏串。
 

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

Sample Input
22 104 10
 

Sample Output
13
卡特兰数(待解决)
原创粉丝点击