背包问题
文章平均质量分 75
Nminem
curl -L
"https://github.com/docker/compose/releases/download/v2.26.1/dock
er-compose-linux-x86_64" -o /usr/local/bin/docker-compose
展开
-
完全背包问题DP详解
所以f[i -1][j - v[i]] + w[i]、f[i -1][j - 2 * v[i]] + 2 * w[i]、f[i -1][j - k * v[i]] + k * w[i -1] ... 这一坨可以等价替换成 f[i][j - v[i]] + w[i] 《注意这里第一维从上一次的 i - 1 换成本层的i了,所以优化成一维后要从小到大遍历,在遍历到 j 之前要先遍历到本层的 j - v[i],更新结果》f[i][j]表示从前i个物品中选,选出的物品体积之和原创 2022-08-23 01:12:29 · 217 阅读 · 0 评论 -
01背包问题DP详解
不拿时 f[i - 1][j] 与 拿时 f[i - 1][j - v[i]] + w[i] (因为要拿第i个物品,所以先把第i个物品去除掉,找出去除第i个物品所生背包容量的前i - 1个物品选出的最大值)的最大值即可。而我们要的是上一层f[i-1][j-v[i]]+w[i]的值,所以如果从大到小遍历,那么本层更小的j - v[i]在本层还没被遍历过。第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。原创 2022-08-22 02:38:40 · 453 阅读 · 1 评论