dp优化:
#includeusing namespace std; const int N = 1010, MOD = 1e9 + 7; int dp[N]; int main() { int n; cin >> n; dp[0] = 1; for(int i = 1; i <= n; i ++ ){ for(int j = i; j <= n; j ++ ){ dp[j]+=dp[j-i]; } } cout << dp[n] << endl; return 0; }

dp优化:
#includeusing namespace std; const int N = 1010, MOD = 1e9 + 7; int dp[N]; int main() { int n; cin >> n; dp[0] = 1; for(int i = 1; i <= n; i ++ ){ for(int j = i; j <= n; j ++ ){ dp[j]+=dp[j-i]; } } cout << dp[n] << endl; return 0; }