国王和金矿 python解法
solution
def get_most_gold(n, w):
_vals, vals = [0]*w, [0]*w
for i in range(w):
if i + 1 < cap[0]:
_vals[i] = 0
else:
_vals[i] = vol[0]
# -> ord of gold mine
for i in range(1, n):
# -> j + 1, workers
for j in range(w):
if j + 1 < cap[i]:
vals[j] = _vals[j]
else:
temp = 0 if j < cap[i] else _vals[j-cap[i]]
vals[j] = max(
_vals[j], temp + vol[i]
)
_vals = [_val for _val in vals]
print(_vals)
vals = [0]*w
get_most_gold(5, 10)