1481: 路径计数

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

找到一个数组的最大值的一种方法是从数组开头从前到后对数组进行扫描,max=a[0](数组下表从0..N-1),如果a[i]>max,就更新max,这样就可以在O(N)的时间里找到一个数组的最大值。

这个问题是相当简单的,但是想到了另一个问题,如果一个包含N个元素的数组a里面的元素的值是在1...K之间的整数,存在多少个不同的数组a,进行了如上扫描之后,max恰好进行了P次更新?

下面是N = 4,K = 3,P = 2时所有情况

1) {1,1,2,3}

2) {1,2,1,3}

3) {1,2,2,3}

4) {1,2,3,1}

5) {1,2,3,2}

6) {1,2,3,3}

共有6种情况

由于答案可能很大,所以你仅仅需要把答案mod 10^9+7输出。

输入

第一行T,本题有T组数据。

接下来T,每行三个整数,N,K,P

输出

包括T,每行一个答案。

样例输入 复制

3
4 3 2
2 3 1
3 4 1

样例输出 复制

6
3
30

提示

【数据规模】

30%数据

T=1

1 <= n <= 10

1 <= K <= 2

0 <= P < n

60%数据

T=1

1 <= n <= 50

1 <= K <= 10

0 <= P < n

100%数据

1 <= T <= 100

1 <= n <= 100

1 <= K <= 300

0 <= P < n