差分总结(一阶,二阶)

差分算法是一种基础算法

介绍:差分算法的特点在于支持区间修改(O(1)的时间复杂度),能够通过求前缀和获得修改后的原数组,O(n),

所以差分算法一般都是需要多次修改后,再进行一次前缀和求和的情况下

 先看看一维差分

一维差分

 一维差分分给一阶序列差分和二阶差分

一般使用差分数组来优化的话都是求一阶差分,二阶差分主要是用来替代树状数组和线段树

一阶差分

一阶差分一般应用于:需要多次区间修改,少量单点查询的情况下,这时候一般可以用差分来优化。可以总结为

 

 1.差分应用题

        ​差分应用题里面:差分更像是一种工具,可以用来   求每个点被遍历了几次   ,   差分修改 , 知道某点和差分数组,求各个点的值等等

        求每个点被遍历了几次                                   海底高铁

        差分修改                                                        P2367 语文成绩

        二分答案+差分修改                                       P1083 [NOIP2012 提高组] 借教室

2.差分+贪心

        差分+贪心主要应用于经典题型  增减序列    ,通过差分数组,求使得他们变成一样的最小操作数。

        差分贪心经典      增减序列

                                P1969 [NOIP2013 提高组] 积木大赛(差分+贪心)

二阶差分

一阶差分有时候还解决不了问题,可能就要使用二阶差分了

一阶差分的区间修改,相当于[L,R]加上一个常数项

二阶差分的区间修改,相当于[L,R]改变了直线的斜率

        改变斜率        P5026 Lycanthropy(二阶差分)_qq12323qweeqwe的博客-CSDN博客

运用二阶差分插入一元一次方程(等差数列)

        P4231 三步必杀(二阶差分)_qq12323qweeqwe的博客-CSDN博客

                               

        

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值