#P1257. [BJWC2018] 数字统计

[BJWC2018] 数字统计

题目描述

小 A 正在研究一些数字统计问题。有一天他突然看到了一个这样的问题:

[L..R][L..R] 中的所有整数用 MM 位二进制数表示(允许出现前导 00)。现在将这些数中的每一个作如下变换:

从这个数的最低两位开始,如果这两位都是 00,那么 X=1X=1,否则 X=0X=0。现在将这两位删去,然后将 XX 放在原来最低位的位置上。重复这个变换直到这个数只剩下一位为止。

例如 0100101001 的变换过程如下:01001010001100101001 \to 0100 \to 011 \to 00 \to 1

现在的问题是变换后的所有数中,值为 YYYY0011)的有多少个?

小 A 不会了,他想让你帮助他完成这个问题。

输入格式

输入文件包含多组测试数据。

第一行,一个整数 TT,表示测试数据的组数。

接下来的 TT 节,每节对应一组测试数据,格式如下:

第一行,两个整数 MMYY

第二行,两个 MM 位二进制数 LLRR

输出格式

对于每组测试数据,输出一行,一个二进制数,表示该组测试数据中 [L..R][L..R] 中的所有整数变换后的值为 YY 的个数。这里的二进制数不允许出现前导 00

1
3 1
001 101
11

提示

对于 20%20\% 的数据:1M161 ≤ M ≤ 16

对于 40%40\% 的数据:1M321 ≤ M ≤ 32

对于 100%100\% 的数据:1M2001T501 ≤ M ≤ 200,1 ≤ T ≤ 50