折返跑是一种跑步运动形式,运动者从一侧的杆子出发,跑向另一侧的杆子,绕过杆子跑回起点,绕过起点的杆子再跑向另一侧,不断重复这一过程。这种运动形式有助于高效利用空间,运动者可以在有限的区域内进行无限的锻炼。
了解了折返跑的运动方法后,
不屑道:“哼,杆子不动的折返跑没有灵魂,杆子不断移动的才有意思!”说干就干,他立即进行了一场移动杆折返跑运动。
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
对于每一组测试数据,输入两个整数
代表点位的数量、折返跑的趟数。
对于每组数据,在一行上输出一个整数代表合法的推杆方法种类数。由于答案可能很大,请将答案对
取模后输出。
对于第一组测试数据,有且仅有唯一的推杆方法:
在第一次折返时(位于右杆),将右杆向左推一个点位;随后在第二次折返时(位于左杆),将左杆向右推一个点位;
对于第二组测试数据,有以下三种推杆方法:
在第一次折返时(位于右杆),将右杆向左推一个点位;随后在第二次折返时(位于左杆),将左杆向右推一个点位;
在第一次折返时,将右杆向左推两个点位;随后在第二次折返时,将左杆向右推一个点位;
在第一次折返时,将右杆向左推一个点位;随后在第二次折返时,将左杆向右推两个点位。
对于第三组测试数据,由于只跑一趟,没有折返,所以没有推杆,这也算作一种推杆方法。