摘要: 题目链接: 解: 题意就是让我们求每次以a[i]结尾的最长不降子序列的和。 那我们先预处理出来以每一个数结尾的最长不降子序列的长度,放在e[i]中,即以第i个数结尾。 用基础dp求出即可。 那么我们定义sum数组,表示以i结尾的最长不降子序列的和。 那么枚举i之前的数,有:当e[i]==e[j]+1 阅读全文
posted @ 2019-07-05 21:48 Refined_heart 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 序列双段最大子段和问题 (也许很水但蒟蒻刚刚学dp就来记录一下) 题目链接 题意就是求序列中的任意两段的最大子段和最大。 我们先预处理出来前缀和,方便求最大子段和。 对于每一个i都求一遍1到i的最大子段和,即: 其中,a数组是前缀和,直接处理的。 那么,我们再对n到1的每一个i求一遍最大子段和,即: 阅读全文
posted @ 2019-07-05 09:36 Refined_heart 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 背包也好久,没看了……看了一道比较难的背包,再去做些简单的熟悉一遍 题目连接 解: 先来看看题目中出现的条件:时间,生命,高度。 对于每个垃圾落下来的时间,首先来一波排序。以下落时间升序排序。 怎样设计状态? 将垃圾看做物品,生命值看做价值,增加的高度看做体积。总高度即为背包容量。 那么:设dp[i 阅读全文
posted @ 2019-07-05 07:57 Refined_heart 阅读(275) 评论(0) 推荐(0) 编辑