![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
背包
菠萝丶
这个作者很懒,什么都没留下…
展开
-
POJ 3466 带限制的 0 1背包问题
POJ 3466 带限制的 0 1背包问题 题目链接 分析如下: 由于必须要 超过 q 值才能购买,而无论是一维还是二维普通 000 111 背包问题,它后一个的值都需要用到上一个的值。 比如: 我们现在更新 dp[i][j]dp[i][j]dp[i][j],需要用到 dp[i−1][j−w[i]]+v[i]dp[i-1][j-w[i]]+v[i]dp[i−1][j−w[i]]+v[i] 的值,...原创 2019-07-15 21:12:58 · 345 阅读 · 0 评论 -
POJ 1384 Piggy-Bank
完全背包的装满问题 凡是求装满或不装满,都是由于初始化决定的。 一定要记住,DP的初始化是满足解的条件(或待定解状态) 而对于完全背包: 设 dp[i][j]dp[i][j]dp[i][j] 表示 前 iii 件物品在拥有最大体积 jjj 的情况下,所得到的最大价值。 当dp[0][j](j=0......V)dp[0][j] (j=0......V)dp[0][j](j=0......V) 时,...原创 2019-07-15 21:45:35 · 139 阅读 · 0 评论 -
HDU 3033 I love sneakers!
分组背包问题 至少拿一件物品的 0 1 背包问题 设dp[i][j] 表示前 i 组,在总花费为 j 的情况下,最大价值。 对于边界: dp[0][j]dp[0][j]dp[0][j] 表示前 000 组 的最大价值,因为不可能状物品,果断初始化为 000 。 dp[i][0]dp[i][0]dp[i][0] 表示总花费为 000 的时候,前 iii 组的最大价值。由于本题的物品花费可能为 000...原创 2019-07-16 00:38:03 · 79 阅读 · 0 评论 -
HDU3535 AreYouBusy
多重背包问题 该题含有三种背包问题: 1、在本组中,至少拿一件物品的 0 1 背包问题 2、在本组中,至多拿一件物品的 0 1 背包问题 3、在本组中的 0 1 背包问题 1、对于第一种: 由于至少拿一件物品,故初始化 dp[i]dp[i]dp[i] 为 负无穷。因为该 第 i 组,在各种体积下的合法状态都是未知的,因为不可以不拿,不能初始化为 000 ,而求的是最大值,故初始化为 负无穷。 由于...原创 2019-07-16 01:03:35 · 127 阅读 · 0 评论 -
UVA 147 完全背包种类个数问题 (含有一维、二维 代码)
UVA 147 (完全背包的种类个数问题) 由于涉及到美元、美分,所以将全部金额乘以100之后,再进行完全背包的种类状态 dpdpdp 即可。 先通过二维来分析出一维: 设 dp[i][j]dp[i][j]dp[i][j] 表示的是 前 iii 个物品,能达到 jjj 美元时的种类数。 对于初始化: dp[0][j]dp[0][j]dp[0][j] 表示前 000 个物品,在最大容量为 jjj 的...原创 2019-07-16 20:18:07 · 219 阅读 · 0 评论 -
HDU 4427 Math Magic
设 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示的是 前 iii个数,总和为 jjj ,LCM 为 kkk 的时候的种类数。 如果现在已知dp[i][j][k]dp[i][j][k]dp[i][j][k],那么我们可以求得下一个状态: 设下一个数为 sss ,那么 dp[i+1][j+s][lcm[k,s]]dp[i+1][j+s][lcm[k,s]]dp[i+1][j...原创 2019-07-16 20:41:22 · 137 阅读 · 0 评论