小明有N元钱去药店买口罩,药店里有6个品牌的口罩,A品牌2个装(2元),B品牌3个装(2元)、C品牌1个装(3元)、D品牌5个装(1元),E品牌4个装(5元),F品牌3个装(2元),由于限购每个品牌最多只能买一个,小明最多能买多少口罩?
输入描述:
N元钱(1<N<15)
输出描述:
N元钱能买到的口罩数目
输入例子1:
9
输出例子1:
13
此题属于背包问题。
n=int(inuput())
wt=[2,3,1,5,4,3]
val=[2,2,3,1,5,2]
dp=[[0 for i in range(7)]for j in range(n+1)]
for i in range(1,7):
for j in range(1,n+1):
if (j-val[i-1])<0:
dp[i][j]=dp[i-1][j]
else:
dp[i][j]=max(dp[i-1][j-val[i-1]]+wt[i-1],dp[i-1][j])
print(dp[6][n])