随笔分类 -  DP:背包

摘要:当一个背包有两个维度的价值的时候 可以考虑把价值压到状态里 这道题记录绝对值的话没有办法唯一确定价值 所以要记录差值 为了保证数组下标始终为正 所以我们要加上偏移量 在记录路径的时候 G不能够省去第一维度了 否则的话记录的只是最后一层从哪里来 就会出错 G只是纯粹的记录从哪里来 不存在递推的关系 # 阅读全文
posted @ 2022-02-09 16:32 __iostream 阅读(73) 评论(0) 推荐(0) 编辑
摘要:树上背包问题 每一个子树就是一组背包 由于最后选根节点 因此根节点可以看做是必须选的一组 才有了后面的递推 void dfs(int x,int fa) { f[x][0]=0; for(int i=head[x];i;i=e[i].next) { int y=e[i].to; if(y==fa) 阅读全文
posted @ 2022-02-09 11:21 __iostream 阅读(28) 评论(0) 推荐(0) 编辑
摘要:每个物品只有一个: 0/1背包 f[i][j]=max{f[i1][j],f[i1][jVi]+Wi} 有n个数 构成整数m的方案数 f[i][j]=f[i1][j]+f[i1][jai] 每个物品有无限个: 完全背包 \(f[i][j]=max\{ f[i 阅读全文
posted @ 2022-02-09 11:19 __iostream 阅读(32) 评论(0) 推荐(0) 编辑

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