题解 | 【模板】完全背包
import sys
v = []
w = []
n, tv = map(int, input().split())
for i in range(n):
a,b = map(int, input().split())
v.append(a)
w.append(b)
ar = [0 for i in range(tv + 100)]
for i in range(tv + 1):
for j in range(n):
if i - v[j] < 0 : continue
if i - v[j] != 0 and ar[i - v[j]] == 0: continue
ar[i] = max(ar[i], ar[i - v[j]] + w[j])
# print(ar)
print(max(ar))
print(ar[tv])
查看7道真题和解析