牛客训练赛2 --D money

该博客讨论了D.money问题的解题思路,包括贪心算法和动态规划(DP)两种方法。题目要求在一系列商店中通过买入和卖出商品获取最大利润,并使操作次数最少。博主强调了分析非递减序列的重要性,并提醒注意特殊边界情况。此外,博主分享了DP解决方案的实现细节,指出此类问题的签到题相对简单,提倡通过画图辅助解题。
摘要由CSDN通过智能技术生成

D. money

题 意:小明依次路过标号为1到n的商店,每个商店都有一个标号,代表这个商店的价格a[i]。小明在每个商店可以选择花a[i]买一个商品或者是以a[i]的价格将身上的商品卖出。问最后小明能获取的最大利润,以及在获取最大利润的前提下,所需的买入,卖出次数最少。
输入范围:
0 < n <= 1e5
0 <= ai <= 2147483648

输入样例:

1   //测试样例的个数
5    //n
9 10 7 6 8 //a[i]

输出样例:

3 4  //最大利润,最少次数.

图1-1

给出贪心和dp两种解题方法

思 路:这种题目画图分析一下,很显然,我门在9买入,在10卖出,下一个买入在那呢?在6买入在8卖出。也就是我们要找非递减序列。然后还要特别注意判断一下这种情况。很容易被忽略
这里写图片描述
收 获: 其实区域赛的签到题还是很简单的。学会要画图做题.

//非递减序列
#include<bits/stdc++.h>
using namespace std;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值