![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 66
爱学习的图灵机
计算机新生努力学习
展开
-
01背包/完全背包/多重背包-优化/分组背包整理
01背包f[i,j]表示前i件物品,体积不超过j的最大价值每件物品一个转移方程由于i状态转移只用到f[i-1],故优化掉第一维,具体来说计算f[j]的时候要有上层f[j-v],由于去掉第一维度后本身就是上一层的值,所以需要逆序遍历,保证j-v是上层的j-v./* * @Author: ACCXavier * @Date: 2021-04-25 19:57:50 * @LastEditTime: 2021-05-24 11:54:01 * Bilibili:https://space.bi原创 2021-05-24 12:38:07 · 183 阅读 · 0 评论 -
最长上升子序列nlogn写法
思路和方法普通做法最长上升子序列dp求法:f[i] = max(f[k]+1,f[i]),此时f[i]表示以i结尾的上升子序列的最大长度优化做法现在考虑长度为1的子序列,3和1如果后续子序列能接到3的后面则一定能接到1的后面,故3这个子序列就不用存,因为能接在3后面一定能接在1后面,故对于长度1的子序列只需要存结尾值最小的.以此类推所有长度的子序列只需要存结尾长度最小的即可.我们存f[i]表示长度为i的上升子序列的结尾最小值,该数组一定单调上升 (1)当要更新以a[i]结尾的子序列的长度,需要原创 2021-05-24 11:40:54 · 414 阅读 · 0 评论 -
力扣664.奇怪的打印机题解
题目地址有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。 给你一个字符串 s,你的任务是计算这个打印机打印它需要的最少打印次数。示例 1:输入:s = “aaabbb” 输出:2 解释:首先打印 “aaa” 然后打印 “bbb”。 示例 2:输入:s = “aba” 输出:2 解释:首先打印 “aaa” 然后在第二个位置打印 “b” 覆盖掉原来的字符 ‘a’。提示:1 <= s.l.原创 2021-05-24 09:15:54 · 257 阅读 · 0 评论 -
序列最大收益
题目地址给定一个长度为 m 的整数序列 a1,a2,…,am。序列中每个元素的值 ai 均满足 1≤ai≤n。当一个值为 i 的元素和一个值为 j 的元素相邻时,可以产生的收益为 wi,j。现在,我们可以从序列中删除最多 k 个元素,删除一些元素后,原本不相邻的元素可能会变得相邻。序列的收益和为所有相邻元素对产生的收益之和,例如一个长度为 3 的整数序列 1,3,2 的收益和为 w1,3+w3,2。请问,通过利用删除操作,能够得到的序列的最大收益和是多少?输入格式第一行包含三个整数 n,k原创 2021-05-12 20:39:32 · 188 阅读 · 1 评论