[//]: # 超简单的python代码
题目描述
有 N
种物品和一个容量是 V
的背包。
第 i
种物品最多有 si
件,每件体积是 vi
,价值是 wi
。
求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。
输入格式
第一行两个整数,N,V
,用空格隔开,分别表示物品种数和背包容积。
接下来有 N
行,每行三个整数 vi,wi,si
,用空格隔开,分别表示第 i
种物品的体积、价值和数量。
```
一维dp
n,m=map(int,input().split())
dp=[0 for i in range(m+1)]
for i in range(n):
v,w,q=map(int,input().split())
for _ in range(q):
for j in range(m,v-1,-1):
if j-v>=0:
dp[j]=max(dp[j],dp[j-v]+w)
else:
break
print(dp[m])