CF865D Buy Low Sell High 贪心

正解:贪心

解题报告:

传送门!

这题首先有个很显然的dp,太基础了不说QAQ

然后考虑dp是n2的,显然过不去,所以换一个角度

然后发现这题和普通的dp的题有什么不同呢?就它这儿是一天只能买一支股,所以考虑怎么从这儿下手?

为了方便表示这里先define一下,x表示卖出价格,y表示买入价格

现在考虑如果是只考虑最后一天,那显然是从前面没买股票的日子中找到一天买股票的价格最低的,和最后一天股票的卖出价格做对比,如果能赚钱就卖,就欧克了

但是显然这样只能决定最后一天,因为显然可能存在当前来说今天卖更赚的情况,然后就买了,但是其实这天买是更优的

那假如今天我已经卖了,后面发现买更优,那就是获得了x-y的收益,所以就考虑开个堆,存的是收益,如果不卖肯定直接把买的代价直接压进去,否则是-x以支持反悔操作,就反正肯定是x-y的收益,只是在于是+x1还是x2,如果先买了x1,后来发现买x1更好,就搞一个-x操作表示反悔了QwQ

注意一下的是在我反悔之后意义就相当于不在这一天卖了,那这天就依然能卖,所以还要压一个x进去,over

大概是这样儿的?好像依然没表述好我已经放弃了TT

overr

上一篇:最常用SQL joins:内连接(交集)、左外连接、右外连接、左连接、右连接、全连接(并集),全外连接


下一篇:利用SQL语句实现分页