Palindrome Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4751 Accepted Submission(s): 1625 Prob ...
分类:
编程语言 时间:
2016-04-22 12:05:39
阅读次数:
247
Map Poj,1840 题意很好懂。采用分治法直接把复杂度割掉2/5。 用short数组可以防止爆内存,int数组就GG了。 学习:考虑到爆内存,换范围小一点的。考虑时间,可以用滚动/动态滚动数组.dp[i][j] i或j可以变化不一定一开就很大。 其实就是也可以是hash表数据差不多。网上看了一 ...
分类:
其他好文 时间:
2016-04-08 00:43:13
阅读次数:
206
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 题目要求是尽量装的最多,所以初始化的时候都为0即可。 如果要求恰好装满,初始化的时候除了dp[0] = 0,其他都要设成-inf,表示不合法情况。 滚动数组: ...
分类:
其他好文 时间:
2016-04-05 15:38:09
阅读次数:
236
HDU 1024 题目大意:给定m和n以及n个数,求n个数的m个连续子系列的最大值,要求子序列不想交。 解题思路:<1>动态规划,定义状态dp[i][j]表示序列前j个数的i段子序列的值,其中第i个子序列包括a[j], 则max(dp[m][k]),m<=k<=n 即为所求的结果 <2>初始状态: ...
分类:
编程语言 时间:
2016-04-02 22:44:51
阅读次数:
253
对于数组中的大数加法 为了节省内存 可以考虑使用滚动数组杭电1250 Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequence, with the fi ...
分类:
编程语言 时间:
2016-03-30 22:08:32
阅读次数:
203
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 题意:输入一个数N(1 <= N <= 4200),问将这些数排列成折线型有多少中合法的排列;折线形即一个数比相邻的数都大或者都小; 如:1 3 2 4就是一个折线型; 思路:f[i,
分类:
编程语言 时间:
2016-03-20 16:09:39
阅读次数:
164
题目链接 我真是DP弱者想了半天。。。h1[i]记录当前在第i棵树的最大值(滚动数组),h2[i]记录高度在i时的最大值这两个数组可以交替更新 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstr
分类:
其他好文 时间:
2016-03-04 22:24:09
阅读次数:
210
题目大意:在一条直线上有n件珠宝,已知每件珠宝的位置,并且第 i 件珠宝在 ti 时刻就消失,问能否将所有的珠宝收集起来?如果能,求出最短时间。搜集能瞬间完成。 题目分析:区间DP。dp(i,j,0)表示搜集区间(i,j)并且停留在左端所需的最短时间,dp(i,j,1)表示搜集区间(i,j)并且停留
分类:
编程语言 时间:
2016-02-19 12:19:44
阅读次数:
170
很经典的01背包, 假设f(i, j)是将i个物品放入容量为j的背包, 那么可得到如下递推式f(i, j) = max(f(i-1, j) , f(i-1, j-c[i])+v[i]))。。。。实现的话有两种方式, 一种是直接用二维数组实现, 另外一种是滚动数组, 不过要注意的是, 如果题意是让.....
分类:
其他好文 时间:
2015-11-26 13:05:24
阅读次数:
193
题意:给n个数将其分成连续的m组,使得这些组的数加和最大,组与组之间可以空数。/*dp[i][j]表示将前j个数分成i个组最大值状态转移方程是:dp[i][j]=max(dp[i-1][0...j-1],dp[i][j-1])+tmp[j];内存的优化是用滚动数组记录dp[i][...]和dp[i-...
分类:
其他好文 时间:
2015-11-02 17:19:45
阅读次数:
181