背包dp; 拆分数。
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
int f[3000][20];
int w[3000], v[3000];
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
for(int i = 1; i <= 2022; i++) {
w[i] = i; v[i] = 1;
}
f[0][0] = 1;
for(int i = 1; i <= 2022; i++) {
for(int j = 2022; j >= w[i]; j--) {
for(int k = 10; k >= v[i]; k--) {
f[j][k] += f[j - w[i]][k - v[i]];
}
}
}
cout << f[2022][10] << endl;
return 0;
}