Skip to content

M28906:数的划分

dfs, dp, http://cs101.openjudge.cn/practice/28906

cpp
#include <iostream>

using namespace std;

int main(){
    int n,k;
    cin>>n>>k;
    int a[n+1][k+1]={};
    for(int i=1;i<=n;i++){
        a[i][1]=1;
    }
    for(int i=1;i<=n;i++){
        for(int j=2;j<=k;j++){
            if(i-j>=0){
                a[i][j]=a[i-j][j]+a[i-1][j-1];
            }
        }
    }
    cout<<a[n][k];
    return 0;
}