From e936904b01d7e1a3424e98044fff4940a502f891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 12 Mar 2024 11:19:18 +0800 Subject: [PATCH] 'commit' --- TangDou/AcWing/BeiBao/4.md | 21 ++- TangDou/AcWing/BeiBao/6.md | 215 ++---------------------------- TangDou/AcWing/BeiBao/6_ErWei.cpp | 16 +-- 3 files changed, 31 insertions(+), 221 deletions(-) diff --git a/TangDou/AcWing/BeiBao/4.md b/TangDou/AcWing/BeiBao/4.md index aa55e20..de039fb 100644 --- a/TangDou/AcWing/BeiBao/4.md +++ b/TangDou/AcWing/BeiBao/4.md @@ -34,14 +34,21 @@ $0 + +* **状态表示** +集合:所有只从前$i$个物品中选,并且总体积不超过$j$的选法 +属性:集合中每一个选法对应的总价值的最大值 + +* **状态计算** +就是一个集合划分的过程,就是和完全背包很像,但不像完全背包有无穷多个,而是有数量限制 + +* 初始状态:`f[0][0]` +* 目标状态:`f[n][m]` + +#### 状态转移方程 +$$\large f[i][j] = max\{(f[i-1][j − k*v[i]] + k*w[i])   |  0 ≤ k ≤ s[i],j>=k*v[i]\}$$ ### 三、实现代码(二维数组) ```cpp {.line-numbers} diff --git a/TangDou/AcWing/BeiBao/6.md b/TangDou/AcWing/BeiBao/6.md index 7ba2b39..74aa3d8 100644 --- a/TangDou/AcWing/BeiBao/6.md +++ b/TangDou/AcWing/BeiBao/6.md @@ -1,4 +1,4 @@ -## [AcWing 6. 多重背包问题 III](https://www.acwing.com/problem/content/6/) +## [$AcWing$ $6$. 多重背包问题 $III$](https://www.acwing.com/problem/content/6/) ### 一、题目描述 有 $N$ 种物品和一个容量是 $V$ 的背包。 @@ -40,22 +40,8 @@ $0三种解法的根本区别在于数据范围,题面都是一样的: +### 二、三种解法 +三种解法的根本区别在于数据范围,题面都是一样的: