因为 ,暴搜肯定会超时,所以我采用了分治和记忆化思想来解。

其他都好理解……

上Mr.Code!

#include <bits/stdc++.h>
#define mod 19930125
using namespace std;
int f[5001][5001];
int dec(int l,int r)
{
    if (r>l) r=l;
    if (f[l][r]!=0) return f[l][r];
    if (l==0 || l==1 || r==1) return 1;
    return f[l][r]=(dec(l-r,r)+dec(l,r-1))%mod;
}
int main()
{
    //分解自然数
    int n;
    scanf("%d",&n);
    printf("%d",((dec(n,n)-1)%mod+mod)%mod);
}