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

P3108. 贪心的商人

中等通过率 69% · 提交 1,121 · 通过 775
贪心动态规划数学DP/贪心

小慕经营着一家店铺,共有 number 种商品。由于仓库容量有限,每种商品的最大持有数量为 item[index]。每种商品的价格在每天的变化为 。小慕可以通过对商品的买进和卖出获取利润,请计算小慕在 days 天内能获得的最大利润。 注意:同一件商品可以多次买进和卖出。

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

输入描述

<div data-page-id="LHD9d8pkrouZBCx5SOEcLTpinLf" data-docx-has-block-data="false"> <pre class="ace-line ace-line old-record-id-BSyqdHniuoUJMHx17sbcgJblnbf"><code class="language-C" data-wrap="false">3 // 输入商品的数量 number 3 // 输入商人售货天数 days 4 5 6 // 输入仓库限制每件商品的最大持有数量是 item[index] 1 2 3 // 输入第一件商品每天的价格 4 3 2 // 输入第二件商品每天的价格 1 5 3 // 输入第三件商品每天的价格</code></pre> </div> <span data-lark-record-data="{"rootId":"LHD9d8pkrouZBCx5SOEcLTpinLf","text":{"initialAttributedTexts":{"text":{"0":"3 // 输入商品的数量 number\n3 // 输入商人售货天数 days\n4 5 6 // 输入仓库限制每件商品的最大持有数量是 item[index]\n1 2 3 // 输入第一件商品每天的价格\n4 3 2 // 输入第二件商品每天的价格\n1 5 3 // 输入第三件商品每天的价格"},"attribs":{"0":"*0|5+3n*0+l"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"]},"nextNum":1}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":true,"selection":[{"id":7,"type":"text","selection":{"start":0,"end":152},"recordId":"BSyqdHniuoUJMHx17sbcgJblnbf"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

输出描述

<div data-page-id="LHD9d8pkrouZBCx5SOEcLTpinLf" data-docx-has-block-data="false"> <pre class="ace-line ace-line old-record-id-YC0adKK8YoIWWkxEs97c164Nn9K"><code class="language-C" data-wrap="false">32 // 输出商人在这段时间内的最大利润</code></pre> </div> <span data-lark-record-data="{"rootId":"LHD9d8pkrouZBCx5SOEcLTpinLf","text":{"initialAttributedTexts":{"text":{"0":"32 // 输出商人在这段时间内的最大利润"},"attribs":{"0":"*0+p"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"]},"nextNum":1}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":true,"selection":[{"id":10,"type":"text","selection":{"start":0,"end":25},"recordId":"YC0adKK8YoIWWkxEs97c164Nn9K"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

示例

示例 1

输入

3
3
4 5 6
1 2 3
4 3 2
1 5 3

输出

32

说明:根据输入的信息: number = 3,days = 3,item = [4,5,6],item_price = [[1,2,3],[4,3,2],[1,5,3]]。 - 针对第一件商品,商人在第一天的价格是 item_price[0][0] = 1 时买入 item[0]件,在第三天 item_price[0][2] = 3 的时候卖出,获利最大是 8; - 针对第二件商品,不进行交易,获利最大是 0; - 针对第三件商品,商人在第一天的价格是 item_price[2][0] = 1 时买入 item[2]件,在第二天 item_price[2][0] == 5 的时候卖出,获利最大是 24; 因此这段时间商人能获取的最大利润是 8 + 24 = 32;

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

看不懂题目?点开图解
双机位A/C - 贪心商人 图解(样例) 商品1 (最多4件) 第1天 价格1 买入4件 第3天 价格3 卖出4件 利润=4*(3-1)=8 商品2 (最多5件) 价格持续下跌,不交易,利润=0 商品3 (最多6件) 第1天 价格1 买入6件 第2天 价格5 卖出6件 利润=6*(5-1)=24 总利润 = 8 + 0 + 24 = 32
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「贪心的商人」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。