【学习笔记】数据结构:树状数组(二)区间修改


前言

上一次我讲了树状数组的单点修改,这次我打算讲一讲树状数组的区间修改。

在这里插入图片描述


区间修改单点查询

似乎毫无头绪。我们知道,树状数组的思想是前缀和,那我们是不是可以用一下前缀和的逆运算:差分呢?
首先我们设 b i = a i − a i − 1 b_i=a_i-a_{i-1} bi=aiai1 ,那我们看一下:

查询

我们首先考虑查询。我们要求 a i a_i ai 那么我们就只用求 ∑ j = 1 i b j \sum_{j=1}^i b_j j=1ibj 即可
为什么呢?让我展开给你看看:
b 1 + b 2 + . . . + b i b_1+b_2+...+b_i b1+b2+...+bi
= a 1 − a 0 + a 2 − a 1 + . . . + a i − a i − 1 =a_1-a_0+a_2-a_1+...+a_i-a_{i-1} =a1a0+a2a1+...+aiai1
= a i − a 0

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值