差分及树上差分学习笔记

大佬博客链接:https://www.cnblogs.com/ice-wing/p/7709311.html

 

差分:

于是先来说一下差分吧,假设现在给你一个序列,要对区间进行修改,只有区间加和区间减,然后求一次整体的最大值

好事,我们只需要用线段树就好了,但是如果数据范围比较大,那么线段树就死了,这时我们可以考虑这样一种操作

比如说这样一个序列

1 2 2 4 5 6 5 7 8

假设我们要修改区间[4, 7],将区间内所有数都加1,那么我们可以再开一个数组用来标记

在4的位置标记+1,在8的位置标记-1

0 0 0 1 0 0 0 1 

这时我们就可以发现对这个标记数组求一个前缀和

0 0 0 1 1 1 1 0

哦好事,我们发现我们就已经知道在某一段区间要加上几,这样我们就一个O(n)扫一遍,取个最大值

这题就结束了。

题?回头再说 

转载于:https://www.cnblogs.com/ywjblog/p/9852772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值