【2016】组合数问题:统计满足C(i,j)是k倍数的数对数量
类型:程序题

问题描述

组合数 $C_n^m$ 表示的是从 $n$ 个物品中选出 $m$ 个物品的方案数。举个例子,从 $(1,2,3)$ 三个物品中选择两个物品可以有 $(1,2),(1,3),(2,3)$ 这三种选择方法。根据组合数的定义,我们可以给出计算组合数 $C_n^m$ 的一般公式: $$C_n^m = \frac{n!}{m!(n-m)!}$$ 其中 $n! = 1 \times 2 \times \dots \times n$。 小葱想知道如果给定 $n,m$ 和 $k$,对于所有的 $0 \leq i \leq n,0 \leq j \leq \min(i,m)$ 有多少对 $(i,j)$ 满足 $C_i^j$ 是 $k$ 的倍数。

输入描述

第一行有两个整数 $t,k$,其中 $t$ 代表该测试点总共有多少组测试数据,$k$ 的意义见问题描述。 接下来 $t$ 行每行两个整数 $n,m$,其中 $n,m$ 的意义见问题描述。

输出描述

$t$ 行,每行一个整数代表所有的 $0 \leq i \leq n,0 \leq j \leq \min(i,m)$ 中有多少对 $(i,j)$ 满足 $C_i^j$ 是 $k$ 的倍数。

样例

输入样例1

1 2
3 3

输出样例1

1

样例1说明

在所有可能的情况中,只有 $C_2^1 = 2$ 是2的倍数。

输入样例2

2 5
4 5
6 7

输出样例2

0
7

子任务

测试点 $n$ $m$ $k$ $t$
1 $\leq 3$ $\leq 3$ $=2$ $=1$
2 $\leq 3$ $\leq 3$ $=3$ $\leq 10^4$
3 $\leq7$ $\leq7$ $=4$ $=1$
4 $\leq7$ $\leq7$ $=5$ $\leq10^4$
5 $\leq10$ $\leq10$ $=6$ $=1$
6 $\leq10$ $\leq10$ $=7$ $\leq10^4$
7 $\leq20$ $\leq100$ $=8$ $=1$
8 $\leq20$ $\leq100$ $=9$ $\leq10^4$
9 $\leq25$ $\leq2000$ $=10$ $=1$
10 $\leq25$ $\leq2000$ $=11$ $\leq10^4$
11 $\leq60$ $\leq20$ $=12$ $=1$
12 $\leq60$ $\leq20$ $=13$ $\leq10^4$
13 $\leq100$ $\leq25$ $=14$ $=1$
14 $\leq100$ $\leq25$ $=15$ $\leq10^4$
15 $\leq100$ $\leq60$ $=16$ $=1$
16 $\leq100$ $\leq60$ $=17$ $\leq10^4$
17 $\leq2000$ $\leq100$ $=18$ $=1$
18 $\leq2000$ $\leq100$ $=19$ $\leq10^4$
19 $\leq2000$ $\leq2000$ $=20$ $=1$
20 $\leq2000$ $\leq2000$ $=21$ $\leq10^4$
代码编辑器 加载中...
测试用例(F10) 运行测试(F11) 提交答案(F12)
测试用例输入
{{resultStatus.text}}