解题思路:完全背包, 和uva674是一样的, 只是这里的体积是r ^ 3。
#include#include 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; }