
POJ动态规划(DP)
文章平均质量分 64
WWL919618308
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
0-1背包问题
问题描述: 给了n种物品和一个背包。物品的重量的W[i](weight),价V[i](value),背包容量为c(capacity),问应该如何选择放入背包中的物品,使得装入背包的物品总价值最大。每个物品只有两种可能的选择,放或者不放,所以称为0-1背包问题,即要找到一个数组(x1,x2,……,Xn),x[i]∈{0,1},不放就是0,放入就是1要求就是, ∑x[i]*w[i]<原创 2013-06-13 15:40:39 · 643 阅读 · 0 评论 -
简单DP之二维背包问题
3-4 二维0-1背包 给定n种物品和一背包。物品i的重量是wi,体积是bi,其价值为vi,背包的容量为C,容积为D。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或者不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。试设计一个解此问题的动态规划算法,并分析算法的计算复杂性。 和0-1原创 2013-06-13 15:40:45 · 4811 阅读 · 0 评论 -
DP之最基本的求最长公共子序列
最近脑抽,又写了遍求最长公共子序列的问题…… 0 i=0,j=0c[i][j]= c[i-1][j-1]+1 x[i]=y[j] MAX(c[i][j-1],c[i-1][j]} x[i]≠y[j]x[i]代表第一个序列:x[1]到x[i]y[j]代表第二个序列: y[j]到y[j]c[i][原创 2013-06-13 15:40:35 · 523 阅读 · 0 评论 -
简单DP之最少硬币问题(多重背包问…
最少硬币问题问题描述:设有n种不同面值的硬币,各硬币的面值存在于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0£m£20001,设计一个最少硬币找钱m的方法。算法设计:对于给定的1£n£10 ,硬币面值数组T和可以使用的各种面值的硬币数组Coins,以及钱数m, 0£m£20001,计算找钱m的最少硬币数。数据输原创 2013-06-13 15:40:41 · 939 阅读 · 0 评论 -
DP之简单的求最大字段和问题
用DP的方式处理最大字段和问题,显然是很有效率的O(n)的时间复制度设b[j]:第1到第j个数中,从第i个数一直加到第j个数的和的最大值。就是从a[i]+a[i+1]+…+a[j]连续相加a: -2 11 -4 13 -5 -2b= -2 11 7 20 15 13如果b(代码中没处理,需要的话开始判定一下就行)然后,最大字段和的其实就是b中最大的数据求这个序列的话原创 2013-06-13 15:40:37 · 663 阅读 · 0 评论 -
DP之一般背包问题
(⊙o⊙)…,不打算发的,因为思路就是将多重背包转成0-1背包解决。比较水。就是0-1背包的代码简化了不少~按照课本讲的代码方式去写确实很坑……//x[i]是物品i的个数,a[i],c[i]依次为质量,价值,容量为n然后这次处理和上一个的区别就是dp[i][j]代表的意义略有不同,汗,其实也是一个意思此处dp[i][j]代表,容量为j,物品从1->i物品获得的最优解for(i原创 2013-06-13 15:40:43 · 606 阅读 · 0 评论