6568 - 组合查询(comb)

题目描述

从 i 个不同元素中选出 j 个元素,得到一个集合,方案数量记为 C_i^j。

只要选出的元素相同,就视为同一种方案,选择的先后顺序不产生新方案。约定从 0 个元素中选出 0 个元素有 1 种方案。

给定 q 个询问,每次给出 i,j,请输出 C_i^j 对 1000000007 取模的结果。各个询问相互独立。

输入

第一行包含一个正整数 q,表示询问数量。

接下来 q 行,每行包含两个非负整数 i,j,表示一次询问。

输出

按照询问顺序输出 q 行,每行一个整数,表示对应询问的答案。

样例

输入

5
0 0
4 2
5 1
5 5
6 3

输出

1
6
5
1
20

输入

10
8 3
8 5
12 6
15 2
20 10
20 0
20 20
30 15
40 20
50 25

输出

56
56
924
105
184756
1
1
155117520
846527861
605552882
说明

样例 1 解释

  • 从 0 个元素中选 0 个,只有空集这 1 种方案。
  • 对四个元素 1,2,3,4,选出两个元素的集合为 {1,2}、{1,3}、{1,4}、{2,3}、{2,4}、{3,4},共有 6 种。
  • 从五个元素中选一个,有 5 种;选出全部五个,只有 1 种。
  • 从六个元素中选三个,有 20 种。

样例 2 解释

本例包含选取数量互补的询问,以及需要取模的较大组合数。输出取模后的结果。

样例 3

见题目目录下的 comb/3.in 与 comb/3.ans。

该样例满足测试点 3,4 的约束条件。

样例 4

见题目目录下的 comb/4.in 与 comb/4.ans。

该样例满足测试点 7\sim10 的约束条件。

数据范围

对于所有测试数据,保证 1\le q\le10000,每个询问满足 0\le j\le i\le2000。

本题共 10 个测试点,每个测试点 10 分。

测试点编号每个询问中 i 的上界q 的上界
1,22020
3,4200200
5,610002000
7\sim10200010000

附件下载

comb.zip (53.01 KB)

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 2
通过人数 1
金币数量 1 枚
难度 入门


上一题 下一题