动态规划
果冻虾仁
这个作者很懒,什么都没留下…
展开
-
hdu1231最大连续子序列
如题,求最大连续子序列和注意的是,全为负的情况比较特殊直接用1003的代码,改改也就过了这里用第三组数据演示一下算法的过程。i012345a[i]5-83250《《maxsum=temsum=5;start=end=0;i=1 temsum=5-8=-3;i=原创 2013-08-04 19:02:11 · 1199 阅读 · 0 评论 -
hdu1257 LIS模板题*
原题地址原创 2014-08-03 19:35:30 · 1630 阅读 · 0 评论 -
hdu1243 最长公共子序列(LCS)
这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值。架构还是不变的。可作为LCS问题的模板题。时间复杂度O(N^2)。注意题目中的字母都是小写字母,也就是只有26种字符。不需要开太大的数组。所以hash就是很好的一种保存权值的方法。另外吐槽一下。子弹序列和恐怖分子序列的长度太坑了,因为题目没有给出长度。我开了个2000个数组,wa了n次。改成2005就AC了。原创 2014-08-06 12:24:24 · 2579 阅读 · 0 评论 -
hdu1159 LCS模板题
LCS最长公共子序列模板题。。原创 2014-08-06 22:41:36 · 1791 阅读 · 0 评论 -
Max Sum
题意为最长连续子序列和。对我来说是第一道dp题,也是一道模板题。需要输入子段的开始start和结束的位置end。定义序列为A:1----n;A[1]....A[i]的maxsum取决于A[1]....A[i-1]A[1...i]=max{maxA[1...i-1]+A[i],A[i]}即如果max A[1...i-1]请注意,这时转化的都是tempsum即是临时的。原创 2013-08-04 12:54:35 · 1412 阅读 · 0 评论 -
hdu1087最长递增子序列
简单dp题,LIS。不同之处是这里要求得的不是最长的子序列,而是权重和最长的子序列。其实大同小异。状态数组就是到达每个位置的最大权重。LIS问题常用解法就是两个: 人人为我 我为人人原创 2014-08-03 23:07:24 · 2079 阅读 · 0 评论 -
hdu2084动态规划入门题----数塔
原题:数塔动态规划入门题目。比较简单。原创 2014-06-11 18:15:25 · 2433 阅读 · 0 评论 -
hdu2955 Robberies
Robberies题目注意的是,概率的精度问题,不是只有两位小数。。有很多位,所以要转换思路。我也是看了网上的解题报告后,懂的。不同之处:一般的理解,背包容量应为概率1。转化思路,背包容量为银行总的钱数。改为在总钱数一定的情况下,通过少抢点钱来增加自己安全的逃跑概率,在大于等于给定逃跑概率时求解所能获得的最大钱数。#include using namespace std;原创 2013-08-18 13:49:47 · 1475 阅读 · 0 评论 -
poj3624 Charm Bracelet
简单的0 1背包。数据也只有一组。但是呢,要注意个MLE的问题。数组要开大,至少13000吧。但是绝不能开成二维数组。这样肯定会MLE了。。确实二维的01背包代码,理解起来较为直观。但是对内存的消耗也着实不可小觑。。一下是一维数组的AC代码:#include using namespace std;#define MAXC 3500#define MAXR 13000int原创 2013-08-15 20:59:38 · 1410 阅读 · 0 评论 -
hdu1559,1081最大子矩阵和的两种题型
最大子矩阵是一种典型的dp问题。某种程度上说是最大连续子序列和问题的扩展。这里选取了两个HDU上的最大子矩阵和问题来解读。原创 2014-08-13 15:22:01 · 2259 阅读 · 0 评论