sorry....我坑了...
这个函数是个三维函数.....
by UrJack @ 2018-03-03 09:31:16
一个可行性剪枝搞定。
#include<bits/stdc++.h>
using namespace std;
int n,k;
int ans=0;
void dfs(int cnt,int last,int sum)
{
if((k-cnt+1)*last>n-sum) return ;
for(int i=last;i<=n-sum;i++)
{
if(cnt==k)
{
++ans;
return ;
}
dfs(cnt+1,i,sum+i);
}
}
int main()
{
scanf("%d%d",&n,&k);
dfs(1,1,0);
printf("%d",ans);
return 0;
}
by 丶Cyanide @ 2018-07-18 21:29:53