![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 80
qwe585p
这个作者很懒,什么都没留下…
展开
-
POJ 1163 The Triangle(基础DP)
解题思路:基础DP题目,使用滚动数组,只要一维数组就够了,节省空间。定义ans[]为每行前j个中的最大值,ans[j] = max( ans[j], ans[j+1]) + t[i][j];为递推公式。 ans[1]即为t[i][j]为三角形的最大值。Description73 88 1 02 7 4 44 5 2 6 5(Figure原创 2015-06-22 14:38:20 · 281 阅读 · 0 评论 -
HDU-1160 FatMouse's Speed(LIS)
题意:找出老鼠体重不断在增加,速度在不断减少的,最长序列,并打印序号。解题思路:先对体重排降序,再利用LIS求出最长子序列,再求出子序列的过程中,使用pre数组,保存i前面的j,并用p不断指向最长子序列的最后一个位置i。然后逆序打印路径。DescriptionFatMouse believes that the fatter a mouse is, the fast原创 2015-08-22 14:49:43 · 314 阅读 · 0 评论 -
HDU-1087 Super Jumping! Jumping! Jumping!(LIS)
题意:求LIS的和解题思路:就是LIS的思路,在求LIS的过程中,不断加和就可以了。DescriptionNowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know l原创 2015-08-22 14:58:32 · 325 阅读 · 0 评论 -
HDU--1114 Piggy-Bank(完全背包)
题意:给出空存钱罐的重量和装钱后的重量,给出几种面额的钱币和其重量,求里面最少存了多少钱。解题思路:完全背包问题,背包要求恰好填满, 初始化dp为INF, 求dp[w] 即可.定义dp[i]为重量为i时,背包内物品价值的最小值。状态转移方程:dp[j] = min(dp[j], dp[j - w[i]] + p[i])。DescriptionBefore ACM原创 2015-08-23 16:00:46 · 304 阅读 · 0 评论 -
POJ 3666--Making the Grade(dp)
题意:给出一组序列, 对序列中的数字每次进行加1或减1视为进行操作一次, 求将此序列变成非增序列或非减序列(并非严格单调)最小的操作次数。解题思路:自己脑卡,看了别人的才会。首先a数组储存原始数据,b数组储存排序后的数据。要保证操作的次数最小,那么新序列的每个数字一定是原始序列中的一些数字。定义dp[i][j]表示第i个位置 为b数组j位置的数字时,所对应的最小值。状态转移方程:d原创 2015-08-23 23:20:09 · 349 阅读 · 0 评论 -
HDU-1176 免费馅饼(数字三角形)
题意:中文略解题思路:每一秒有三种抉择,呆在原地等,向左边的点移动一步, 向右边的点移动一步。这根本就是一个数字三角形加强版,定义dp[i][j]为第i秒在位置j。递推公式 dp[i][j] = max(dp[i+1][j], dp[i+1][j+1], dp[I+1][j-1])。然后自底向上循环填表。打印起始位置dp[0][5]即可。Description原创 2015-08-22 15:18:50 · 367 阅读 · 0 评论 -
HDU-1257 最少拦截系统(LIS)
题意:中文略解题思路:几天前A的题,这个题让你求出所给序列中,有几条最长下降子序列(相对),但是要是单纯的去求最长下降子序列的条数,就需要多搞个循环记录下降子序列的条数,时间可能会超时。 仔细想想这个题就是求最长上升子序列,并输出最长有多长就行了。具体是如何想的呢,就是我们把整个问题反过来思考,设dp[i]为能拦截到的最高的高度,如果存在a[j] > a[i] 那么这个导弹就不能被系统拦截原创 2015-08-22 15:40:07 · 422 阅读 · 0 评论