AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3412. 云短信平台优惠活动

中等通过率 57% · 提交 837 · 通过 479
动态规划背包DP贪心DP

小慕负责公司的云短信采购,为庆祝国庆,平台推出了充值优惠活动。 现在给出小慕的,以及,求他最多能获得的短信总条数。

提示:带虚线的词点一下有通俗解释。

输入描述

<div class="ace-line ace-line old-record-id-GPr3d2kyWoWKIaxIXNpcwmBunjd" style="white-space:pre-wrap;"> 第一行客户预算 <code>M</code>,其中 <code>0 <= M <= 1000000</code> </div> <div class="ace-line ace-line old-record-id-AsdwdRabnooS75xSHUEc6bV9nYl" style="white-space:pre-wrap;"> 第二行给出售价表,<code>P1, P2, …, Pn</code>, 其中 <code>Pi</code> 为充值 <code>i</code> 元获得的短信条数。 </div> <div class="ace-line ace-line old-record-id-TIObdJDBRogxvAxWKv1cyqHwnwL" style="white-space:pre-wrap;"> <code>1 <= Pi <= 1000</code>, <code>1 <= n <= 100</code> </div>

输出描述

<span style="white-space:pre-wrap;"> 最多获得的短信条数</span>

示例

示例 1

输入

6
10 20 30 40 60

输出

70

说明:分两次充值最优,1 元、5 元各充一次。总条数 10 + 60 = 70

示例 2

输入

15
10 20 30 40 60 60 70 80 90 150

输出

210

说明:分两次充值最优,10 元、5 元各充一次。总条数 150 + 60 = 210

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
示例图解:预算6元,售价表[10,20,30,40,60] 预算 M=6 元 售价表:充值 i 元得 Pi 条短信 i: 1 2 3 4 5 Pi:10 20 30 40 60 选择:充 1 元 + 充 5 元(共 6 元) 总条数 = 10 + 60 = 70
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「云短信平台优惠活动」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。