博客园 首页 私信博主 显示目录 隐藏目录 管理

UVa 11137 - Ingenuous Cubrency

题目:统计一个数字可以有多少种立方和的表示方式。

分析:dp,完全背包。又见整数拆分。

#include <bits/stdc++.h>
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] = 0;
    F[0] = 1;
    for (int i = 1 ; i <= 21 ; ++ i)
        for (int j = cube[i] ; j < 10000 ; ++ j)
            F[j] = F[j]+F[j-cube[i]];
    int n;
    while (cin >> n)
        cout << F[n] << endl;
    return 0;
}
View Code

 

posted @ 2016-07-16 16:08  hfcnal  阅读(413)  评论(0编辑  收藏  举报