随笔分类 - DP:背包
摘要:当一个背包有两个维度的价值的时候 可以考虑把价值压到状态里 这道题记录绝对值的话没有办法唯一确定价值 所以要记录差值 为了保证数组下标始终为正 所以我们要加上偏移量 在记录路径的时候 G不能够省去第一维度了 否则的话记录的只是最后一层从哪里来 就会出错 G只是纯粹的记录从哪里来 不存在递推的关系 #
阅读全文
摘要:树上背包问题 每一个子树就是一组背包 由于最后选根节点 因此根节点可以看做是必须选的一组 才有了后面的递推 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)
阅读全文
摘要:每个物品只有一个: 0/1背包 \(f[i][j]=max\{ f[i-1][j],f[i-1][j-V_i]+W_i \}\) 有n个数 构成整数m的方案数 \(f[i][j]=f[i-1][j]+f[i-1][j-a_i]\) 每个物品有无限个: 完全背包 \(f[i][j]=max\{ f[i
阅读全文

浙公网安备 33010602011771号