算法总结--差分!
feizhu_QWQ · · 算法·理论
飞竹来也!
今天我们继续学习新的算法--差分!
大家还记得前缀和吗?一个可以
给你一个数组:
好的,请你给他做一个前缀和代码,我赌你一定会!
那么今天我们来点不一样的:差分(简称小差
差分的定义含简单,我们把它叫做
那么
当你学会了这个模板后,你就觉得自己天下无敌了,
还原是嘛?
呃......
我们只用把差分数组进行前缀和,那么
这个在时间上特别有优势呢!(小差:腻害吧!
接着,如果我让你把
这年头,你还在用循环?也太
这回,咱们就用差分数组来优化一波:
数学里说:同增同减差不变,所以我们只用改变差分数组中的
那这两个元素又是哪两位天选之素呢?
改完后,你就基本了解差分了,接下来我们瞅一道题:P2367
语文成绩!
这道题就是经典的差分题,我们可以在每次加分的时候就把那两位天选的元素分别处理一下,最后用前面讲的方法,用前缀和还原原来的
下一道:
梦想家
看到这道题有没有一种一脸懵逼的感觉?
这道题前面和差分还有点相似,可当你看到这的时候,我相信你已经懵了:
这是神么鬼玩意?
别急,我们把它拆开:
也就是前一个元素小于后一个元素,那么下面的同理
前一个元素大于后一个元素
提起大于小于,我就想起了差分小差!
这不就可以转换为
哇塞哇塞!尊嘟假嘟?
尊嘟!
那么接下来的我就不讲了
这就是差分典型的套路,把差分改为一个看似很复杂的公式
以后大家千万不要被他忽悠到了,他就是纸老虎!
再回到这道题,这道题和差分特别想,只不过他每次都让你输出魅力值,这就有点难办了?
别急,小差来了!
真相只有一个!无解
我们每次操作完,只会改变两个差分元素,也就是我们每次都只用把这两个元素对魅力值的影响处理一下就好了!
我们可以写一个函数,把刚刚转化为差分的公式放进去,算出每个差分元素对魅力值提供的价值。
接着,先用魅力值减去
注意:这道题出题人挖了坑!
只有
来吧来吧,准备投喂绿题(小差:两眼放光!)
CF1442A
这道题题意很简单,可和其他题不同的,就在于他只能减前
没关系,这道题如果你想通了就很简单,所以我们思考10分钟......
好的,时间到!
这道题我们只用考虑比前一个数字小的数字的与前一个数字的差,能否用
图中有一个坑,两个小山坡, 如果小山坡的土足够就可以填满,反之不能
这和这道题有什么联系呢?
小土坑是指那些大小超标的数,小山坡是指
有同学说:我不可以从另一端
从
今天的课就到这了!
和小差说再见,拜拜~~