#209. 奶牛排队

奶牛排队

【说明】

本题不再额外提供样例文件。

【题目描述】

Farmer John 的 N 头奶牛已经排成了一排。

现在要让奶牛们重新排队,要求重新排队后,恰好有 M 头奶牛仍然在原位置不动,而其他所有奶牛都不能在原位置。至于是哪 M 头奶牛不动,则由 John 任意决定。

问:有多少种可能的重新排队的方案? 答案可能很大,你需要将其 mod (109+7)(10^9 + 7) 后输出。

注:当 N=M 时,所有牛都不动也算一种新的排队方案。

【输入格式】

多组数据。对于每组数据:

  • 第一行:包含一个整数 T,表示数据组数。

  • 接下来 T 行,每行包含两个整数 N 和 M

【输出格式】

共 T 行,每行一个整数,表示对应数据的答案。

【样例输入】

6
1 0
2 2
3 1
3 2
987 123
123456 78910

【样例输出】

0
1
3
0
989757828
490361105

【数据规模】

共 20 个测试点,全部满足 1T5×105,1N106,0M1061 ≤ T ≤ 5 × 10^5, 1 ≤ N ≤ 10^6, 0 ≤ M ≤ 10^6。具体如下:

测试点编号 T = N, M ≤ 测试点编号 T = N, M ≤
131-3 10310^3 88 101210-12 10310^3 10310^3
464-6 1212 131413-14 5×1055 × 10^5
797-9 100100 152015-20 10610^6