https://www.luogu.com.cn/problem/P1025
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 10;
int n,k;
int ans;
int st[N];
void dfs(int last,int left,int step)//利用last来保证这次选的数一定大于等于上次选的数
{
if(left<0)return;
if(step==k+1)
{
if(left==0)
{
// for(int i=1;i<=3;i++)
// cout << st[i] << ' ';
// cout << endl;
ans++;
}
return;
}
for(int i=last;i<=left;i++)
{
// st[step]=i;
dfs(i,left-i,step+1);
}
}
int main()
{
cin >> n >> k;
dfs(1,n,1);
cout << ans << endl;
}
标签:last,NOIP2001,int,dfs,P1025,划分,include From: https://www.cnblogs.com/lxl-233/p/17521377.html