
DP动态规划
文章平均质量分 74
a
不一样的崽
这个作者很懒,什么都没留下…
展开
-
杭电1087—— Super Jumping! Jumping! Jumping!
题意就是给出n枚棋子,没枚棋子有相应的值,要从最前一个走到最后一个,走法任意,一次随便走几步,但是只能从值小的棋子走到值大的,问存在走法使得走过的棋子值相加最大为多少???一言不合上代码:#include#include#include#include#includeusing namespace std;struct Node{ int sum;原创 2017-08-23 10:24:12 · 297 阅读 · 0 评论 -
杭电1506——Largest Rectangle in a Histogram
今天没有激情,题意自己理解吧............题目中叫求一个最大的区域,则第i个矩形对应的面积是ave[i] = (r[i] – l[i] + 1) * a[i];l[i]表示以它这个高度所能到达的最左边的位置(最左一个高度不小于它的高度的位置),而r[i]表示能到达的最右边的位置(最右一个高度不小于它的高度的位置)。那么这个题目就转到怎么求r[]和l[]上了。如果每原创 2017-08-23 13:55:31 · 283 阅读 · 0 评论 -
杭电2955- Robberies
这是动态规划里的背包类型的最基础的一种题目-01背包,即每件物品只有一件,相信看过的一些01背包的网上解释的都只到,01背包是只要考虑当前的物品是放或不放就可以理解这类题目,但是我个人认为这种的理解太片面了,虽然这样理解很形象,很容易理解01背包问题,但是这样去理解的话就体现不出背包问题的实质——动态规划的思想(这只是本菜鸟的个人理解,不喜勿喷)。接下来用一个表格给大家解释:原创 2017-09-07 12:43:02 · 441 阅读 · 0 评论 -
杭电4341-Gold miner(分组背包)
这是一道分组背包的题,这题开始乍一看以为是01背包,但是看了数据才明白是一道分组背包。分组背包其实是一种变相的01背包。只不过01背包是每件物品只有一件,可以选择取或不取。分组背包则是有若干类物品,,每类物品中有若干个各不相同的物品,但是每类物品里只能选一样.................他的状态转移方程是这样的:f[k][v]=max{f[k-1][v],f原创 2017-09-17 10:47:49 · 337 阅读 · 0 评论 -
杭电2084——数塔
这题可以说是动态规划里最经典最基础的一类入门题,对于我这种菜鸟都感觉没问题,大家肯定可以的..............原来的我一听到动态规划这四个字都是闻风丧胆的,看到动态规划的题目都是直接跳过的,但是现在慢慢的,感觉这种玄学的东西急也急不来,硬要说一下子花很多时间去研究也不见得会有很大的成效,感觉这种玄学的东西要慢慢来,水到渠成,会一点一点有新的感悟,直到ko它,我正在感悟的路上..原创 2017-09-01 15:58:49 · 521 阅读 · 0 评论 -
杭电1081—动态规划To The Max
这题 的题意想必大家都知道,我就不多说了,就是一个N*N的矩阵里找一个矩形,使得矩形内的元素值相加最大...........说实话,这题开始是没思路的,当然用暴力除外,但是无疑暴力是超时的,貌似有点DP的赶脚,后来就有了一点思路接下来分享两种做法,一种是大佬的0ms过,一种是我自己的46ms过一言不合直接上代码:这种方法就是一遍 遍历列长度,将一定长度列上的看成一个元素。然原创 2017-09-02 21:11:40 · 305 阅读 · 0 评论