摘要: 个人对dp的理解: 记忆化,从小到大,先求出小问题的最优解,然后状态转移逐步求出原问题的解。递推是神,des。 使用dp前提: 能拆分为子问题并能求出状态转移方程,原问题是最优解的同时子问题也都是最优解。 无后效性,也就是一个状态的值只与当前有关,此刻求出多少就是多少。且不会因为达到最优地方式的不同 阅读全文
posted @ 2021-02-09 23:18 七铭的魔法师 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 1 01背包 定义状态为背包容量为j时,装入前i个物品能达到的最大价值,设为dp[i][j]。 状态转移方程为: j<w,dp[i][j] = dp[i-1][j] //背包装不下该物品,最大价值不变 j>=w, dp[i][j] = max( dp[i-1][j-w[i]] + v, dp[i-1 阅读全文
posted @ 2021-02-09 22:55 七铭的魔法师 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 单调栈优化求最大连续上升子序列。 先说说什么是单调栈,此部分内容转自 https://blog.csdn.net/lucky52529/article/details/89155694 1 单调栈 有两种: 单调递增栈:数据出栈的序列为单调递增序列,也就是从栈底到栈顶的数据从大到小。 单调递减栈:数 阅读全文
posted @ 2021-02-09 21:21 七铭的魔法师 阅读(411) 评论(0) 推荐(0) 编辑
摘要: upper_bound与lower_bound函数 格式 两个函数用法类似,都是对一个有序序列的一个左闭右开的有序区间进行二分查找,区间左端点和右端点分别为第1、2个参数,第三个参数是查找的值,第四个参数可填一个cmp函数。以下用upper_bound函数举例。 1 对于一个升序序列或不下降序:up 阅读全文
posted @ 2021-02-09 18:03 七铭的魔法师 阅读(695) 评论(0) 推荐(0) 编辑