题目:统计一个数字可以有多少种立方和的表示方式。
分析:dp,完全背包。又见整数拆分。
说明:csdn冲进前1000了,(*^__^*) 嘻嘻……。
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int cube[25];
long long F[10001];
int main()
{
for (int i = 0 ; i <= 21 ; ++ i)
cube[i] = i*i*i;
for (int i = 0 ; i < 10000 ; ++ i)
F[i] = 0LL;
F[0] = 1LL;
for (int i = 1 ; i <= 21 ; ++ i)
for (int j = cube[i] ; j < 10000 ; ++ j)
F[j] += F[j-cube[i]];
int n;
while (cin >> n)
cout << F[n] << endl;
return 0;
}