動態規劃之數的劃分

xutian_curry發表於2018-04-29

轉化為分蘋果問題

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <math.h>
#include <stack>
#include <ctype.h>
using namespace std;
int dp(int m, int n)
{
    if( m==1 || n==1)
        return 1;
    if( m==0 )
        return 1;
    else if( m < n )
        return dp(m, m);
    else if( m >= n )
        return dp(m-n, n) + dp(m, n-1);
}
int n,k;
int main()
{
    cin >> n >> k;
    cout << dp(n-k, k)<<endl;
    return 0;
}

相關文章