动态规划经典(最大子段和)
sdjzping
这个作者很懒,什么都没留下…
展开
-
poj 1050 To the Max(动态规划处理二维最大子段和)
1、http://poj.org/problem?id=1050 2、题目大意: 给一个N,然后给定一个N*N的二维数组,然后求一个子矩阵,使得其中的数加起来和最大 3、思路: 将二维数组转换成一维数组,假设二维数组是M行N列,那么将二维数组分成N条,用dp[i]记录第i列的和(可以是任意连续长度,for循环就能实现),那么将dp[i]看做一个一个的数,就转换成了一维的数组 核心代码:原创 2013-03-05 20:54:21 · 961 阅读 · 0 评论 -
最大子立方和(动态规划求最大子段和三维变形)
已知一个长宽高分别为m,n,h的立方体,且利比阿尼每一立方体都有一定的价值,要求求得一个子立方体,使得子立方体内部的每个小立方体的权值之和最大, 思想就是,将三维的子立方体转换成一维的处理,用rec[i,j,k]表示z轴坐标为k的平面矩形(1,1,i,j)的数和,其中(1,1)表示子矩阵的左上角坐标,(i,j)表示子矩阵的右下角坐标,那么状态转移方程可以表示为 则z轴坐标为z的水平面中原创 2013-03-06 18:48:28 · 1192 阅读 · 0 评论 -
最大子段和及其升级版
最大子段和及其升级版 最大子段和又是一个常见而且经典的模型.像前面的背包一样,由它又可以扩展出很多类似的模型. 1.基础:(一维)最大子段和 例子:HOJ 1760 The Jackpot 这就是最基础的最大子段和模型:给出一个序列a[0],a[1],a[2],...a[n],要求出连续的一段,使其总和最大.如果设dp[i]表示以第i个元素为结尾的最大总和,那么显然有: dp[i] =转载 2013-03-06 10:33:06 · 814 阅读 · 0 评论 -
hdu Max Sum Plus Plus(最大m段子段和)
1、http://acm.hdu.edu.cn/showproblem.php?pid=1024 2、题目大意: 已知有n个数,求m段不相交的子段权值之和最大, 状态转移方程:dp[i][j]表示以i为结尾元素的j个子段的数和 dp[i][j]=max(dp[i-1][j]+a[i],dp[i-k][j-1]+a[i]);其中(j-1 此题实现这种思想: for(i=1;i原创 2013-03-07 12:09:36 · 4901 阅读 · 3 评论 -
hdu 1003 Max Sum(动态规划求一维最大子段和)
1、http://acm.hdu.edu.cn/showproblem.php?pid=1003 2、一维的求最大子段和问题 给定一串数字,求其中某段连续的数字和最大的那一段,输出最大子段的和以及这个字段的起始和结束位置 注意输出是两个样例之间有一个空行,不是每个样例后边都有空行 3、题目: Max Sum Time Limit: 2000/1000 MS (Java/Others)原创 2013-03-05 19:12:18 · 895 阅读 · 0 评论 -
Maximum sum(poj 2479 最大m子段和)
1、http://poj.org/problem?id=2479 2、题目大意: 给定一串数字,求连续的两个不相交的子段的数和最大,由题目不难看出此题求得是两个子段的数和 3、思路:跟上一篇博客hdu 1024 一样的想法,只是稍微处理一下题目,就不难看出类型一样 4、题目: Maximum sum Time Limit: 1000MS Memory Lim原创 2013-03-07 16:21:16 · 1309 阅读 · 0 评论 -
动态规划之最大子段和问题总结
动态规划之最大子段和问题总结 这几天看了最大子段和的问题,最大子段和的问题用动态规划处理很方便,总的来说最大子段和可以分为四类:1、一维数组求最大子段和;2、二维数组求最大子矩阵;3、三维数组求最大子立方;4、一维数组求最大m子段和 1、一维数组求最大子段和问题 处理这种类型的题目,主要讨论这个问题的建模过程和子问题结构.时刻记住一个前提,这里是连续的区间原创 2013-03-07 17:44:43 · 2172 阅读 · 0 评论 -
hdu 1159 最长公共子序列
1、http://acm.hdu.edu.cn/showproblem.php?pid=1159 2、题目大意: 给定两个字符串,求公共子串的大小,注意不是;连续的子串,相当于将来那个字符串去掉某些字符后剩余的子串相同的最大长度dp[i][j]表示的是a串中前i个字符中和b串中前j个字符中最长公共子序列的长度 3、题目: Common Subsequence Time Limit: 20原创 2013-03-11 19:52:41 · 672 阅读 · 0 评论 -
uva 10827 - Maximum sum on a torus(最大子矩阵升级版)
1、http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1768 2、题目大意: 给定一个数字矩阵,求一个最大子矩阵,注意最左边可以和最右边可以作为一个子矩阵,所以需要将原来的矩阵复制成四个矩阵,例如原矩阵为 123 456 789 复制完的矩阵为原创 2013-04-17 21:28:00 · 863 阅读 · 0 评论