树状数组的复习
前言:
学树状数组的时候第一没理解透彻,第二还没写博客用于复习,所以这里写一下用于复习
树状数组:
作用:logn
logn时间实现单点修改区间查询;区间修改单点查询;区间修改区间查询。
但是区间修改区间查询还是线段树好,因为扩展性很强
特点:父子节点关系
例如当前节点为x,那么fa[x]=x+lowbit(x);
做题方法
1.单点修改区间查询
a[i]表示原数组,t[i]表示前缀树组,然后在x<=n的范围内不断地+lowbit(x)更新父亲的t数组即可
2.区间修改单点查询
原数组a[i],a[i]差分数组b[i],用上面的方法维护两次单点修改的b数组即可