De. • 10小时前
using namespace std; int dp[22][2000001];
int main() {
int n, w, o[1001], v[1001] = {1}, c = 0;
cin >> w;
dp[0][0] = 0;
for (int j = 1; j <= w; j++)
dp[0][j] = 1e9;
for (int i = 1; i <= 21; i++) {
o[i] = i * i * i * i;
}
for (int i = 1; i <= 21; i++) {
for (int j = 0; j <= w; j++) {
if (j >= o[i])
dp[i][j] = min(dp[i - 1][j], dp[i][j - o[i]] + 1);
else {
dp[i][j] = dp[i - 1][j];
}
}
}
cout << dp[21][w];
return 0;
}
评论:
请先登录,才能进行评论