线段树
(查询和修改复杂度都是logn)
1.(区间or单点)查询修改
2.不改动原数组,所有操作都在tree数组上进行,无法操作tree数组例如排序
树状数组
(查询和修改复杂度都是logn)
1.传统树状数组:单点修改,区间查询
2.变形(使用差分建立树状数组):区间修改,单点查询
https://www.acwing.com/problem/content/248/
3.区间修改,区间查询(维护两个数状数组)
https://www.acwing.com/problem/content/244/
4.不改动原数组,所有操作都在tree数组上进行,无法操作tree数组例如排序
差分
1.区间修改o(1),单点查询o(n)(使用前缀和)
2.离线操作,配合树状数组可以实现在线操作
3.可以操作数组例如排序
前缀和
1.区间修改o(n),单点查询o(1)(使用差分)
2.可以操作数组例如排序