前缀差分

有前缀数组q[N],差分数组d[N];
有原数组a[N];
若有操作对a数组的i位到j位加上某个数x;
求之后某个位置的某个数,和i到j位置的和;
此时用到差分数组(将原数组后面一个数减去前一个数得到)
如a[N]:1 3 5 9 , d[N]=1 2 2 4;
要在第1位到第4位同时加2;做4次加法(O(n))是 3 5 7 11
而在数组d上操作:只需改动两个位置第1位,和第5位;即第
i位和第j+1位;在第i位加x,第j+1位-x;得d数组:3 2 2 4 ?
然后求前缀和:3 5 7 11 和原数组一模一样;此操作如果对
N次加法和查询操作可将复杂度降为O(n);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值