#2555. 牛客周赛60E - 折返跑
牛客周赛60E - 折返跑
题目描述
跑道上有 个点位,其中,老师在 点和 点处各放了两根杆子,称为左杆和右杆,作为折返跑的折返点。 老师规定,今天一共需要跑 趟。我们认为,从一根杆子开始,跑到另一根杆子结束为一趟,显然,一共需要进行 次折返。
Zaoly 偶然发现,杆子是可推动的,所以他有了一个大胆的想法——
- 每次跑至右杆后,都要把右杆向左推动一段距离(大于 ),但仍保证右杆位于整数点,且在左杆右边。(不能重合)
- 每次跑至左杆以后,都要把左杆向右推动一段距离,要求同上。
现在给你 ,求一共有多少种不同的推杆方法。答案对 取余。
输入格式
本题有多组数据
第一行输入一个整数 ,代表测试数据组数。
- 每一组数据输入两个整数 。
输出格式
输出 行,每行一个整数代表答案。
3
4 3
5 3
100 1
1
3
1
提示
样例解释
第一组数据只有一种方案
- 在第一次折返时(位于右杆),将右杆向左推一个点位;随后在第二次折返时(位于左杆),将左杆向右推一个点位;
第二组数据有三种方案:
- 在第一次折返时(位于右杆),将右杆向左推一个点位;随后在第二次折返时(位于左杆),将左杆向右推一个点位;
- 在第一次折返时,将右杆向左推两个点位;随后在第二次折返时,将左杆向右推一个点位;
- 在第一次折返时,将右杆向左推一个点位;随后在第二次折返时,将左杆向右推两个点位。
第三组数据只有一种方案:
- 由于只跑一趟,没有折返,所以没有推杆,这也算作一种推杆方法。
数据范围
,。