你有一个背包,最多能容纳的体积是V。
现在有n种物品,每种物品有任意多个,第i种物品的体积为
,价值为
。
(1)求这个背包至多能装多大价值的物品?
(2)若背包恰好装满,求至多能装多大价值的物品?
数据范围: 
6,2,[[5,10],[3,1]]
[10,2]
8,3,[[3,10],[9,1],[10,1]]
[20,0]
无法恰好装满背包。
13,6,[[13,189],[17,360],[19,870],[14,184],[6,298],[16,242]]
[596,189]
可以装5号物品2个,达到最大价值298*2=596,若要求恰好装满,只能装1个1号物品,价值为189.
class Solution: def knapsack(self , v: int, n: int, nums: List[List[int]]) -> List[int]: dp = [0]*(v+1) for i in range(n): for j in range(0, v - nums[i][0]+1): # 完全背包问题,正向遍历容量 if dp[j] != 0&nbs***bsp;j == 0: dp[j+ nums[i][0]] = max(dp[j+ nums[i][0]], dp[j] + nums[i][1]) return [max(dp), dp[v]]