7780: BZOJ3780:数字统计
Memory Limit:128 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
小A正在研究一些数字统计问题。有一天他突然看到了一个这样的问题: 将[L..R]中的所有整数用M位二进制数表示(允许出现前导0)。现在将这些数中的每一个作如下变换: 从这个数的最低两位开始,如果这两位都是0,那么X=1,否则X=0。现在将这两位删去,然后将X放在原来最低位的位置上。重复这个变换直到这个数只剩下一位为止。 例如01001的变换过程如下: 01001-->0100-->011-->00-->1。 现在的问题是变换后的所有数中,值为Y(Y为0或1)的有多少个? 小A不会了,他想让你帮助他完成这个问题。
输入格式
输入文件包含多组测试数据。 第一行,一个整数T,表示测试数据的组数。 接下来的T节,每节对应一组测试数据,格式如下: 第一行,两个整数M、Y。 第二行,两个M位二进制数L、R。
输出格式
对于每组测试数据,输出一行,一个二进制数,表示该组测试数据中[L..R]中的所有整数变换后的值为Y的个数。这里的二进制数不允许出现前导0。
样例输入
1 3 1 001 101
样例输出
11
提示
对于全部的数据,1<=M<=200,1<=T<=50。
题目来源
没有写明来源