福泽后人 极简版
查看原帖
福泽后人 极简版
1512725
weis楼主2025/1/15 10:19
#include<iostream>
using namespace std;
int n,k,a[10]={1},m;
void dfs(int x){
    if(n==0) return;
    if(x==k){
        if(n>=a[x-1]) m++;
        return;
    }
    for(int i=a[x-1];i<=n/(k-x+1);i++){
        a[x]=i;
        n-=i;
        dfs(x+1);
        n+=i;
    }
}
int main() {
	cin>>n>>k;
    dfs(1);
    cout<<m;
    return 0;
}
2025/1/15 10:19
加载中...