题目描述
思路
代码
#include <cstdio>
#include <vector>
using namespace std;
int n, k, ans;
vector<int> v;
void dfs(int x, int pre, int cnt) {
if (x < pre) return;
if (cnt == k - 1) {
// v.push_back(x);
// for (int i = 0; i < v.size(); ++i) {
// printf("%d ", v[i]);
// }
// puts("");
// v.pop_back();
ans++;
return;
}
for (int i = pre; i <= x; ++i) {
// v.push_back(i);
dfs(x - i, i, cnt + 1);
// v.pop_back();
}
}
int main() {
scanf("%d %d", &n, &k);
dfs(n, 1, 0);
printf("%d", ans);
return 0;
}