动态规划
韩小震
一不小心就入坑了~
展开
-
最大子序列
模板int MaxSubSequence(const int A[], int N){ int ThisSum,MaxSum,j; ThisSum = MaxSum =0; for(j = 0;j { ThisSum += A[j]; if(ThisSum > MaxSum) MaxSum = ThisSum;原创 2016-07-27 16:10:52 · 308 阅读 · 0 评论 -
hdu 2709(递推)
SumsetsTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2558 Accepted Submission(s): 1031Problem DescriptionFarmer John comman原创 2017-02-22 20:59:23 · 277 阅读 · 0 评论 -
上升子序列的最大和!长度不一定最长
总时间限制: 1000ms 内存限制: 65536kB描述一个数的序列bi,当b1 你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100, 1, 2, 3)的最大上升子序列和为100,而最长上升子序列为(1, 2, 3)输入输入的第一行是序列的长度N (1 输出最大上升子序列和样例原创 2016-08-01 15:33:26 · 345 阅读 · 0 评论 -
最大子矩阵(子矩阵大小固定)
E - 最大子矩阵Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。Input输入数据的第一行原创 2016-08-16 17:52:10 · 1293 阅读 · 0 评论 -
求最大子矩阵(子矩阵无大小要求)dp
总时间限制: 1000ms 内存限制: 65536kB描述已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。原创 2016-08-16 17:48:01 · 470 阅读 · 0 评论 -
最长公共子序列(dp)
描述我们称序列Z = 1, z2, ..., zk >是序列X = 1, x2, ..., xm >的子序列当且仅当存在 严格上升 的序列1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。比如Z = 是X = 的子序列。现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也原创 2016-07-31 17:02:17 · 1253 阅读 · 0 评论 -
加和求不同的组合方式数目(dp)
描述有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如:n=5,5个数分别为1,2,3,4,5,t=5;那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。输入输入的第一行是两个正整数n和t,用空格隔开,其中1接下来的一行是n个正整数,用空格隔开。输出和为t的不同的组合方式的数目。样例输入5 51 2 3 4 5样例输出原创 2016-07-31 16:22:56 · 1007 阅读 · 0 评论 -
矩阵图求最优最大值问题(简单dp)
描述Hello Kitty 想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty 最多能够摘到多少颗花生。输入第一行是一个整数T,代表一共有多原创 2016-07-31 10:43:42 · 930 阅读 · 0 评论 -
矩阵图求路径条数问题(简单dp)
描述×桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计原创 2016-07-31 10:07:47 · 4576 阅读 · 0 评论 -
数塔最大值问题(DP)
Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1原创 2016-07-30 21:32:43 · 631 阅读 · 0 评论 -
经典DP 搬寝室
胡老师马上要搬新家了,可是搬家真的是一个很累的活,看着家里的n件物品, 胡老师已经凌乱了,因为物品实在太多。于是胡老师想了又想,决定先随便搬2* p件过去就行了。现在,胡老师发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比,( 每次左手一件右手一件) ,如果胡老师左手拿重量为3的物品, 右手拿重量为6的物品, 则他搬完这次的疲劳度为(6-3)^2 = 9.现在,胡老师很有忧伤,他不转载 2016-07-27 18:05:34 · 315 阅读 · 0 评论 -
经典dp 滑雪
DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 7原创 2016-07-27 16:39:09 · 359 阅读 · 0 评论 -
最长上升子序列
复杂度 On^2Description给出一个序列,求出这个序列的最长上升子序列。序列A的上升子序列B定义如下:B为A的子序列B为严格递增序列Input第一行包含一个整数n,表示给出序列的元素个数。第二行包含n个整数,代表这个序列。1 Output输出给出序列的最长子序列的长度。Sample Input71 7原创 2016-07-27 16:22:51 · 265 阅读 · 0 评论 -
石子归并 51nod(区间dp)
1021 石子归并基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1 2 3 4,有不少合并方法1 2原创 2017-04-29 18:44:29 · 305 阅读 · 0 评论