【Java】【滚动数组】【动态规划】UVA - 11137 - Ingenuous Cubrency
滚动数组优化自己画一下就明白了。
http://blog.csdn.net/u014800748/article/details/45849217
解题思路:本题利用递推关系解决。建立一个多段图,定义状态d(i,j)表示“使用不超过i的整数的立方,累加和为j”的方案数。那么根据加法原理,如果没有选择数字i的立方和就得到了j,那么方案数就是d(i-1,j);如果选择了数字i的立方和才得到了j,那么方案数是d(i,j-i^3)。即:
d(i,j)=d(i-1,j)+d(i,j-i^3);
这个递推式还可以降低维度,利用滚动数组计算。由递推式可知,i,j都需要从小到大计算,而更新i的时候,d(j)保存的是第i-1次计算时的结果,此时可以用d(j)更新d(j+i^3)的状态。即只需要d(j+i^3)+=d(j)即可完成上述方程的计算。
import java.util.*;
import java.io.*;
import java.math.*; public class Main{
static long[] f=new long[10010];
public static void main(String[] argc){
Scanner sc = new Scanner (new BufferedInputStream(System.in));
f[0]=1l;
for(int i=1;i<=21;++i){
for(int j=0;j<=10000;++j){
if(j+i*i*i<=10000){
f[j+i*i*i]+=f[j];
}
}
}
while(sc.hasNext()){
int n=sc.nextInt();
System.out.println(f[n]);
}
sc.close();
}
}
【Java】【滚动数组】【动态规划】UVA - 11137 - Ingenuous Cubrency的更多相关文章
- uva 11137 Ingenuous Cubrency
// uva 11137 Ingenuous Cubrency // // 题目大意: // // 输入正整数n,将n写成若干个数的立方之和,有多少种 // // 解题思路: // // 注意到n只有 ...
- uva 11137 Ingenuous Cubrency(完全背包)
题目连接:11137 - Ingenuous Cubrency 题目大意:由21种规模的立方体(r 1~21),现在给出一个体积, 要求计算可以用多少种方式组成. 解题思路:完全背包, 和uva674 ...
- UVA 11137 Ingenuous Cubrency(dp)
Ingenuous Cubrency 又是dp问题,我又想了2 30分钟,一点思路也没有,最后又是看的题解,哎,为什么我做dp的题这么烂啊! [题目链接]Ingenuous Cubrency [题目类 ...
- UVA - 11137 Ingenuous Cubrency[背包DP]
People in Cubeland use cubic coins. Not only the unit of currency iscalled a cube but also the coins ...
- hdu 1024(滚动数组+动态规划)
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- 【UVA】11137-Ingenuous Cubrency
DP问题,须要打表. dp[i][j]代表利用大小不超过i的数字组成j的方法. 状态方程是 dp[i][j] = d[i - 1][j] + sum{dp[i - 1][j - k * i * i * ...
- UVa 11137 (完全背包方案数) Ingenuous Cubrency
题意:用13.23……k3这些数加起来组成n,输出总方案数 d(i, j)表示前i个数构成j的方案数则有 d(i, j) = d(i-1, j) + d(i, j - i3) 可以像01背包那样用滚动 ...
- UVa 1625 - Color Length(线性DP + 滚动数组)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 动态规划+滚动数组 -- POJ 1159 Palindrome
给一字符串,问最少加几个字符能够让它成为回文串. 比方 Ab3bd 最少须要两个字符能够成为回文串 dAb3bAd 思路: 动态规划 DP[i][j] 意味着从 i 到 j 这段字符变为回文串最少要几 ...
随机推荐
- jq_常用开发模块
1.循环模块 var html = ""; $.each(data, function(k, v) { html += '<li>' + '<div>' + ...
- 无缝衔接demo
如题. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" con ...
- go环境变量及build文件
package main /* windows go环境设置: # 参考:https://blog.csdn.net/quicmous/article/details/80360126 GOROOT ...
- 【Python学习笔记】colormap的参数及其对应的色条
- Linux-进程间通信(三): 共享内存
1. 共享内存: 共享内存方式可以在多个进程直接共享数据,因为其直接使用内存,不要多余的拷贝,是速度最快的IPC方式: 共享内存有两种实现方式,使用mmap和shm方式,如下图: (1) mmap方式 ...
- [LabVIEW架构]ActorFramework(二)
前言 在上一个文章中,我们介绍了一下LabVIEW中AF的基本概念,本讲将以上一次的例子来讲解LabVIEW中的实现 正文 范例说明 假定两个人,一个作为老师,一个作为学生.学生每天早上给老师发送一封 ...
- tomcat8特性
作者:Eilen,转载需注明.博客主页:http://www.cnblogs.com/Eilen/ 一.Apache Tomcat 8介绍 Apache Tomcat 8RC1版于前几日发布.它 经过 ...
- C# 笔记——数据类型
一张图读懂C#数据类型:
- 二、ansible配置简要介绍
[defaults] # some basic default values… hostfile = /etc/ansible/hosts \\指定默认hosts配置的位置 # library_pat ...
- zoj 3195
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3320 离线算法RE了.. #include<stdio.h> #i ...