问题描述
将整数 n 分成
k 份,且每份不能为空,任意两份不能相同 (不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。
{1,1,5} , {1,5,1}, {5,1,1}问有多少种不同的分法。
输入:n,k
输出:一个整数,即不同的分法。
样例
输入: 7 3
输出:4
四种分法为:{1,1,5},{1,2,4},{1,3,3},{2,2,3}
(6<n<=200,2<=k<=6)
记
f(i,j)
为
k=i
,
n=j
,即将
j
分成
f(1,1)=1
f(i,j)=f(i−1,j−1)+f(i,j−i)∗[j>i]
分两种情况讨论:
1.划分出的最小数为
1
,方案数为
2.划分出的最小数大于
真是很有意思的思路。。。