阿良的算法之路(动态规划之分组背包问题)
作者:互联网
题目描述
参考题解
if __name__ == "__main__":
N, V = map(int, input().split())
v = []
w = []
s = []
dp = [0] * (V + 1)
for i in range(N):
s.append(int(input()))
tv = []
tw = []
for j in range(s[i]):
a, b = map(int, input().split())
tv.append(a)
tw.append(b)
v.append(tv)
w.append(tw)
for i in range(N):
for j in range(V, 0- 1, -1):
for k in range(s[i]):
if j >= v[i][k]:
dp[j] = max(dp[j],dp[j-v[i][k]]+w[i][k])
print(dp[V])
标签:__,背包,int,阿良,tv,range,分组,append,dp 来源: https://blog.csdn.net/qq_51831335/article/details/121302308