UVa 11137 Ingenuous Cubrency

原创 2015年07月10日 16:04:13

Problem I: Ingenuous Cubrency

People in Cubeland use cubic coins. Not only the unit of currency iscalled a cube but also the coins are shaped like cubes andtheir values are cubes. Coins with values of all cubic numbers up to9261 (= 213), i.e., coins with the denominations of 1, 8,27, ..., up to 9261 cubes, are available inCubeland.

Your task is to count the number of ways to pay a given amountusing cubic coins of Cubeland.For example, there are 3 ways to pay 21 cubes:twenty one 1 cube coins, orone 8 cube coin and thirteen 1 cube coins, ortwo 8 cube coin and five 1 cube coins.

Input consists of lines each containing an integer amount tobe paid. You may assume that all the amounts are positive and less than 10000.

For each of the given amounts to be paid output one line containing asingle integer representing the number of ways to pay the given amountusing the coins available in Cubeland.

Sample input

10 
21
77
9999

Output for sample input

2
3
22
440022018293

题意:

求将 n 写成若干个正整数的立方之和有多少种 种方法。


分析:

完全背包,这里假设将 n 写成若干个正整数的立方之和有d[ n ] 种方法。

状态转移方程:d[ j ] = d[ j ] + d[ j - c[ i ] ]  (c[ i ] 为 i 的立方),

要想求得d[ j ],需要从若干个正整数的立方之和为 j + c[ i ] 再加上一个立方和为 c[ i ]

的数转移而来。


代码:

#include <iostream>
#include <cstdio>
using namespace std;
const int MAXI = 21;        //22^3 > n
const int MAXN = 10000 + 5;
int c[22];
long long d[MAXN];

int main()
{
    for(int i = 1; i <= MAXI; i++) c[i] = i * i * i;
    d[0] = 1;
    for(int i = 1; i <= MAXI; i++)
        for(int j = c[i]; j <= MAXN; j++)
                d[j] += d[j - c[i]];
    int n;
    while(~scanf("%d", &n))
        cout << d[n] << endl;
    return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

UVA 11137 Ingenuous Cubrency(完全背包)

UVA 11137 Ingenuous Cubrency(完全背包) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item...

uva11137递推和DP其实有些类似

这道题大白书上是按递推讲的: 分析:建立多段图。节点(i,j)表示“使用不超过i的整数的立方,累加和为j”这个状态,设d(i,j)为从(0,0) 到(i,j)的路径条数,则最终答案为d(21,n)...

UVA 11137

11137 - Ingenuous Cubrency Time limit: 3.000 seconds Problem I: Ingenuous Cubrency People in Cu...
  • zkzxmzk
  • zkzxmzk
  • 2013年09月07日 15:51
  • 474

立方数之和(uva 11137)

People in Cubeland use cubic coins. Notonly the unit of currency is called a cube but also the coins...

机器人足球2d uva球队代码

  • 2009年12月14日 22:05
  • 2.77MB
  • 下载

《算法艺术与信息学竞赛》之 队列 例一 UVa 239 - Tempus et mobilius. Time and motion

算法艺术与信息学竞赛

uva最全ac代码

  • 2013年07月04日 23:19
  • 4.18MB
  • 下载

二维线段树 uva11992

这题开始一位很简单,因为涉及到的操作前面已经讲过了,但是可能真的太年轻,想错了。对于线段树,有了更深的了解,但是离熟悉还差的远。看模板 代码我可以看得懂,但是真正要盲打真的是有心无力。 思路:这道题...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVa 11137 Ingenuous Cubrency
举报原因:
原因补充:

(最多只允许输入30个字)