题目链接数的划分
80分TLE怎么剪枝怎么剪枝怎么剪枝
代码如下:
using namespace std;
int n,k;//将整数 nn 分成 kk 份,且每份不能为空
long long ans;
void dfs(int n,int m,int t)//当前剩余数 当前已经分的份数 上一个数
{
if(m>k)return;
if(n==0&&m!=k)return;
if(n==0&&m==k)
{
ans++;
return;
}
if(t*(k-m)>n)return;
for(int i=t;i<=n;i++)
{
dfs(n-i,m+1,i);
}
}
int main()
{
cin>>n>>k;
dfs(n,0,1);
cout<<ans<<endl;
return 0;
}