題目大意:由21種規模的立方體(r 1~21),現在給出一個體積, 要求計算可以用多少種方式組成。 解題思路:完全背包, 和uva674是一樣的, 只是這裡的體積是r ^ 3。
#include <stdio.h>
#include <string.h>
const int N = 10005;
long long dp[N];
void Init() {
int t;
dp[0] = 1;
for (int i = 1; i <= 21; i++) {
t = i * i * i;
for (int j = t; j < N; j++)
dp[j] += dp[j - t];
}
}
int main() {
Init();
int n;
while (scanf("%d", &n) == 1) {
printf("%lld\n", dp[n]);
}
return 0;
}