能量分组(partition)
题目描述
DAMON THRONE 有 n 点训练能量,需要把这些能量分配给 k 个训练小组。
第 i 个训练小组获得的能量为 xi,要求 x1+x2+⋯+xk=n,并且每个小组至少获得 1 点能量,也就是 xi≥1 。
为了避免把相同的分配方案重复计算,规定:
x1≤x2≤⋯≤xk
请你计算一共有多少种不同的能量分配方案。
由于答案可能很大,请对 109+7 取模。
输入格式
输入一行,包含两个整数 n,k,分别表示总能量和训练小组数量。
输出格式
输出一行一个整数,表示不同分配方案的数量对 109+7 取模后的结果。
输入输出样例 #1
输入 #1
7 3
输出 #1
4
样例解释 #1
满足条件的分配方案共有:
1+1+5=7
1+2+4=7
1+3+3=7
2+2+3=7
因此答案为 4。
输入输出样例 #2
输入 #2
5 2
输出 #2
2
样例解释 #2
满足条件的分配方案为:
1+4=5
2+3=5
因此答案为 2。
输入输出样例 #3
输入 #3
4 5
输出 #3
0
样例解释 #3
每个小组至少需要获得 1 点能量。
将 4 点能量分配给 5 个小组无法满足要求,因此答案为 0。
数据范围与约定
对于所有测试数据,保证:
1≤n,k≤1000
| 测试点 |
分值 |
n |
k |
特殊性质 |
| 1∼2 |
10 |
≤20 |
无 |
| 3∼4 |
20 |
≤100 |
A |
| 5∼6 |
≤500 |
B |
| 7∼8 |
≤1000 |
C |
| 9∼10 |
30 |
无 |
特殊性质 A:保证 k=2。
特殊性质 B:保证 n≥k。
特殊性质 C:保证 n=k。