![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 82
W_904038290
愿历尽千帆,归来仍少年
展开
-
hdu3466 Proud Merchants
大致题意:有n组数,每组数有三个数,pi,买这种物品你有的钱必须大于qi,你所能获得的价值vi。如果你想要买这种物品你所拥有的钱必须大于qi。问你能用你所有的钱最多能获得多大价值。解题思路:以第二组数据为例:A:5 10 5 B:3 5 6如果先买A的再买B的话需要花10块钱,但是先买B再买A的话需要13块钱。也就是花不同的钱却获得了相同的价值。所以这里排序就比较关键了!怎原创 2017-08-01 19:05:55 · 255 阅读 · 0 评论 -
动态规划详解
http://blog.csdn.net/hnuzengchao/article/details/7589246原创 2017-08-04 19:15:30 · 230 阅读 · 0 评论 -
nyoj 1023 还是回文
题解:这是一道区间dp,第一次做关于区间dp的问题,也不是很理解,在网上看了一下别人的思路,希望会有点帮助dp[i][j]代表区间i到区间j成为回文串的最小代价,那么对于dp[i][j]有三种情况:1、dp[i+1][j]表示区间i到区间j已经是回文串了的最小代价,那么对于s[i]这个字母,我们有两种操作,删除与添加,对应有两种代价,dp[i+1][j]+add[s[i]],d原创 2017-08-04 17:05:16 · 274 阅读 · 0 评论 -
nyoj 814 又见拦截导弹
说实话我到现在都不理解他说的题意,可能是我自己理解有问题吧。然后上网搜了一下博客,才明白其实就是一道求最大 上升子序列的dp。。。啊啊啊!!!描述大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度。突然有原创 2017-08-04 10:40:10 · 324 阅读 · 0 评论 -
HDU 1864 最大报销额
虽然是中文题也有几点需要注意,如果魅族商品中除了A,B,C三种商品外还有其他商品,那么这组数据就作废。 乍一看给的数据好像很难得样子,其实也是背包问题,转化一下就行。因为数据是浮点型,恰有两位小数,但是dp不能处理浮点型,所以浮点型数据储存数组的时候要 X100,变成int型。 用%c输入要记得吸收空格。现有一笔经费可以报销一定额度的发票。允许报销的发票原创 2017-08-03 19:28:19 · 321 阅读 · 0 评论 -
nyoj 983 首尾相连数组的最大子数组和
解题思路:如果不是首尾相连的数组我们可以直接求最大子数组和,但这个题是上面的升级版。我们可以先假设收尾数组不相连,求出总长度的和,然后求出最大连续子数组和,最小连续子数组的和。然后用总长度的和减去最小连续子数组的和,最后和上面求出的最大连续子数组的和比较取最大值。首尾相连数组的最大子数组和时间限制:1000 ms | 内存限制:65535 KB难度:4原创 2017-08-17 16:44:49 · 344 阅读 · 0 评论 -
搬寝室 HDU 1421
状态转移思想:将物品按质量递增排序后,从前i件物品中拿走j对(j*2<=i)时,(1)不拿第i件,则dp[i][j]=dp[i-1][j],这个毫无疑问。(2)拿第i件物品,则第i件物品肯定和第i-1件物品一起拿,则dp[i][j]=dp[i-2][j-1]+(w[i]-w[i-1])^2,即从前i-2件中拿j-1对的疲劳值加上拿了最后两件物品的疲劳值(当然,由前到后处理的,i和j前面的所有情况都原创 2017-08-03 15:40:44 · 275 阅读 · 0 评论 -
威威猫系列故事——打地鼠 HDU - 4540
解题思路:就是直接dp,要用到三层循环,状态转移方程为 dp[i][j]=min(dp[i][j],dp[i-1][l]+abs(a[i][j]-a[i-1][l])); 威威猫最近不务正业,每天沉迷于游戏“打地鼠”。 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 无话可说... 我们知道,打地鼠是一款经原创 2017-08-02 21:50:29 · 420 阅读 · 0 评论 -
hdu 1203 I NEED A OFFER!
解题思路:题目就是要让你计算出最大的录取概率,但是录取的情况比较多,可能有录取的有不录取的,还有都录取的。所以我们计算不录取的概率,然后用1 减去不录取的概率,就得到了录取的概率!其实这也是背包问题,但要注意几点情况因为是概率,所以要用double型定义,还有计算是要取最小容量(因为是不录取的概率),其他的我在代码中都有注释!!!Speakless很早就想出国,现在他已经考完了原创 2017-08-02 09:26:05 · 250 阅读 · 0 评论 -
poj 2559 Largest Rectangle in a Histogram
题目大意:给你一个柱状图,每个矩形的宽度都是1,问你在柱状图中可以截取的最大的矩形的面积是多大解题思路:分别以每一个矩形的高度为最小值,找出每一个单位矩形的左边界和右边界的下标,左边界(left)定义为:左边连续比当前高度大的最左边的单位矩形的下标,右边界(right)定义为:右边连续比当前高度大的最右边的单位矩形的下标。然后用(右边界-左边界+1)*dp[i](当前矩形的高度),就可原创 2017-08-08 17:16:49 · 227 阅读 · 0 评论 -
nyoj 10 skiing
大神的思路: 记忆化搜索+动态规划。从某一个点出发,向四个方向探索,找出一条最长的路径,然后再从所有最长路径中找一个最最长的,即为所求。普通搜索的思路就是从一个点开始向四个方向探索,同时用一个变量s进行长度的累加。每次四面都不能走了的时候,就比较max与当前s,进行max的更新。但这样就出现一个问题。每次搜到一个点,不管这个点是否已经探索过,都要再搜索一次,以达到求出最长原创 2017-08-12 15:47:30 · 303 阅读 · 0 评论