介绍
树状数组主要操作为lowbit函数(取出x元素的低位二次幂)方便用于爬链操作(每层子节点通过加上低位二次幂可到达父节点),以及求前缀序列和的操作(将x减去其低位二次幂可得到前一未覆盖序列,通过累加从而达到求前缀和的操作)。
点击查看代码
int lowbit(int x)
{return x&-x;}
适用范围:
1.点修+区查
直接对点进行操作,而后进行爬链操作,在爬链的过程中对父序列进行修改,从而便于区查。
2.区修+点查
用树状数组维护区修的操作,即树状数组中的节点维护差分后的值,在进行点查时,至今查询前一段序列,并进行累加即可得到答案。