回溯法解决01背包问题代码
时间: 2023-12-20 19:31:06 浏览: 86
回溯法解01背包问题
以下是使用回溯法解决01背包问题的Python代码:
```python
def backtrack(i, cw, cv):
global maxV
if i == n or cw == c:
if cv > maxV:
maxV = cv
return
backtrack(i+1, cw, cv)
if cw + w[i] <= c:
backtrack(i+1, cw+w[i], cv+v[i])
n = 5 # 物品个数
c = 10 # 背包容量
w = [2, 2, 6, 5, 4] # 物品重量
v = [6, 3, 5, 4, 6] # 物品价值
maxV = 0 # 最大价值
backtrack(0, 0, 0)
print("01背包问题的最优解为:", maxV)
```
阅读全文