队花的烦恼二
时间限制:
3000
ms | 内存限制:
65535
KB
难度:
4
-
描述
-
ACM队队花C小+最近在X大OJ上做题,竟发现了一道做不出来的…水题!她快郁闷死了……也许是最近状态不太好吧……她希望大家能帮帮忙:把一个整数分成若干个不为零的整数,问有多少种不同分法。
例:7 3 其中的分法:1 1 5,1 5 1,5 1 1是同一种分法。
记忆化的搜索没有超时
思路:分两种第一种没有1的情况是f(i-j,j)个,有1的情况f(i-1,j-1)
ac代码
#include<stdio.h>
int a[550][550];
int fun(int n,int k)
{
if(n<=0||k<=0)
return 0;
if(k==1)
return 1;
if(a[n][k])
return a[n][k];
else
return a[n][k]=fun(n-k,k)+fun(n-1,k-1);
}
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
printf("%d\n",fun(n,k));
}
}