![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
ImwImW
这个作者很懒,什么都没留下…
展开
-
HDU-1087(最长上升子序列和)
题意:给你一序列,找出一个和最大的上升子序列, 输出它的和。思路:动态规划,建立dp数组。因为这题要求是上升子序列,我们需要知道当前子序列末尾的值,所以可使dp[i]表示以i结尾的序列的最大和。这样循环到a[i]时,可通过找到dp数组前i-1项的最大值dp[j],并比较a[j](当前序列最后一项)与当前a[i]的大小。如果a[i] > a[j],则a[i]可加到当前序列。若没找到,则以a...原创 2018-08-06 20:00:41 · 862 阅读 · 0 评论 -
最大报销额 (HDU - 1864,01背包)
首先强调不超过600元的是一张发票上同一类商品的额度总和,而题意描述的是单项物品,坑!输入有空格字符,需要注意一下。然后每一张发票输入完之后,判断是否满足报销条件,如果满足则存入w数组。之后就是一个01背包问题了,只不过这里的价值和花费相等,只需要一个数组存下即可。不过利用dp数组进行状态转移的时候需要注意,因为最后的精度要求是小数点后两位,所以要遍历到每一种状态的话,要将整体的数据都扩大...原创 2018-08-08 19:08:40 · 433 阅读 · 0 评论 -
inversions URAL - 1523(dp + 线段树)
题意:给你一个序列由1~n组成,找出长度为k的严格递减的子序列一共有多少个思路:可以定义状态dp[i][j],来表示以第i项结尾,长度为j的递减序列有多少个。那么转移方程就很容易写出来,即:dp[i][j]=∑dp[k][j−1]      (k<i  &...原创 2018-12-11 14:42:17 · 170 阅读 · 0 评论