#P3786. Adjacent Bit Counts

Adjacent Bit Counts

题目描述

对于一个由n位二进制位组成的字符串 ( x_1, x_2, x_3, \dots, x_n ),其相邻位计数(AdjBC(x))定义为:
[ x_1x_2 + x_2x_3 + x_3x_4 + \dots + x_{n-1}x_n ]
该值表示字符串中相邻两个1的对数。例如:

  • AdjBC(011101101) = 3
  • AdjBC(111101101) = 4
  • AdjBC(010101010) = 0

编写一个程序,输入整数n和k,输出满足AdjBC(x) = k的n位二进制字符串的数量(共(2^n)种可能的字符串)。例如,对于5位字符串,满足AdjBC(x)=2的字符串有6种:
11100, 01110, 00111, 10111, 11101, 11011

输入

输入第一行包含一个整数P((1 \leq P \leq 1000)),表示测试用例的数量。
每个测试用例占一行,包含三个部分:测试用例编号、整数n(二进制字符串的位数)、整数k(目标相邻位计数值)。
数据保证n不超过100,且n和k的取值使得结果可以用32位有符号整数表示。

输出

对于每个测试用例,输出一行,格式为:测试用例编号 + 空格 + 满足条件的n位二进制字符串数量。

输入示例1

10  
1 5 2  
2 20 8  
3 30 17  
4 40 24  
5 50 37  
6 60 52  
7 70 59  
8 80 73  
9 90 84  
10 100 90  

输出示例1

1 6  
2 63426  
3 1861225  
4 168212501  
5 44874764  
6 160916  
7 22937308  
8 99167  
9 15476  
10 23076518  

来源

Greater New York Regional 2009