某云短信厂商为庆祝国庆,推出充值优惠活动。给定客户的预算和不同充值金额对应的短信条数,求在这个预算下最多可以获得的短信总条数
这个问题可以视为一个经典的背包问题。我们需要在有限的预算下选择最优的充值方式以最大化短信条数。具体思路如下:
dp
,其中 dp[j]
表示在预算为 j
时能够获得的最多短信条数。某云短信厂商,为庆祝国庆,推出充值优惠活动。
现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。
第一行客户预算 M ,其中 0≤M≤106
第二行给出售价表, P1,P2,…Pn, 其中 1≤n≤100 ,
Pi为充值 i 元获得的短信条数。1≤Pi≤1000,1≤n≤100
最多获得的短信条数
输入
6
10 20 30 40 60
输出
70
说明
分两次充值最优, 1 元、 5 元各充一次。总条数 10 + 60 = 70
输入
15
10 20 30 40 60 60 70 80 90 150
输出
210
说明
分两次充值最优, 10 元 5 元各充一次,总条数 150 + 60 = 210