'''
完全背包变形
'''
v = int(input())
arr = [10, 20, 50, 100]
# dp(i, j) 表示前i种书做选择,在总价格是j的条件下所有选择的种数
dp = [0] * (v + 1)
for i in range(len(arr)):
for j in range(v + 1):
if j == 0:
dp[j] = 1 # 所有数都选0本,有一种选择
else:
if i == 0:
dp[j] = 1 if j >= arr[0] and j % arr[0] == 0 else 0
else:
if j >= arr[i]:
dp[j] += dp[j - arr[i]]
print(dp[v])
AcWing 背包模型相关问题 1023. 买书
猜你喜欢
转载自blog.csdn.net/xiaohaowudi/article/details/107719507
今日推荐
周排行