随笔分类 -  动态规划

摘要:1、对于体积至多为V 初始化全为0,转移时要求j-v[i]>=0(否则,j<v[i],不可能选) 2、对于体积恰好为V 初始化dp[0]为0,其余为正无穷,转移时要求j-v[i]>=0 3、对于体积至少为0 初始化dp[0]为0,其余为正无穷,转移时不做要求。如果j-v[i]<0,则从0转移(因为如 阅读全文
posted @ 2022-05-26 11:01 80k 阅读(21) 评论(0) 推荐(0) 编辑
摘要:例题 AcWing 1010. 拦截导弹 建立最长下降子序列模型。 同时对于最少需要配备的系统数,可以利用贪心法,判断添加新系统还是放入某个旧系统中(若放入旧系统,则选择大于当前导弹高度的最小值,同时可以发现系统当前高度单调上升,可二分)。 AcWing 187. 导弹防御系统 上一题的拓展,由于有 阅读全文
posted @ 2022-05-19 22:03 80k 阅读(32) 评论(0) 推荐(0) 编辑
摘要:对AcWing 1015. 摘花生(走一次)的拓展 二维网格,左上到右下走两次,或者左上到右下再到左上,求收集数总和的最大值。 等价于求两条路径,和行走方向是无关的。 故都可以等价为从左上同时走。 例题: AcWing 1027. 方格取数AcWing 275. 传纸条 构建dp的方法是,三位dp, 阅读全文
posted @ 2022-05-19 21:50 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:多重背包问题可以用单调队列进行优化 原理见:提高课1.3.1 背包模型(一) 离题:6. 多重背包问题 III 单调队列的deque实现如下: #include<bits/stdc++.h> using namespace std; int v[1010]; int w[1010]; int s[1 阅读全文
posted @ 2022-05-19 21:45 80k 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1、背包问题 (1)01背包 每件物品仅用一次 可以做空间优化 dp[j]=max(dp[j],dp[j-v[i]]+w[i]); 0,1背包状态均是从前一循环的状态转移 注意如果不使用空间优化时,要对小于当前重量的dp位置进行赋值(为上一轮dp的值)!! (2)完全背包 每件物品可以用无限次 dp 阅读全文
posted @ 2022-02-06 13:11 80k 阅读(65) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示