树状数组总结二
2011-12-08 00:50
274 查看
树状数组小结
分类:算法学习 | 作者:酷~行天下 | 发表于2011/07/10 1条评论 513views
最近做了HDU几道树状数组的题,小小总结一下……
树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],那么查询a[1]+…+a
的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。
Cn = A(n – 2^k + 1) + … + An ;
此处的k为n的二进制形式末尾0的个数,可以利用Lowbit()函数找出k
注意:下标不能从0开始:
当i = 0,0 + Lowbit(0) = 0,会造成死循环!
主要三个函数:
+
expand source(双击可全选代码)
树状数组功能:
1、单点更新,区间求和(第一类)//HDU 1166 敌兵布阵
2、区间更新,单点求值(第二类)//HDU 1556 Color the ball
3 、逆序数的应用,可以求左边小于它的数,右边大于它的数,反过来可以求
⁂
题目:
HDU 1166 敌兵布阵 ,树状数组模板题,单点更新,区间求和
+
expand source(双击可全选代码)
⁂
HDU 1556 Color the ball 区间更新,单点求值
+
expand source(双击可全选代码)
⁂
HDU 1541 Stars 树状数组应用
+
expand source(双击可全选代码)
⁂
HDU 1892 See you~ 简单二维树状数组
+
expand source(双击可全选代码)
⁂
HDU 2642 Stars 二维树状数组
+
expand source(双击可全选代码)
⁂
HDU 3584 Cube 三维树状数组,只有0,1的区间更新,单点求值
+
expand source(双击可全选代码)
⁂
HDU 2689 Sort it 求逆序对
+
expand source(双击可全选代码)
⁂
HDU 2838 Cow Sorting 逆序数的应用
+
expand source(双击可全选代码)
⁂
HDU 1394 Minimum Inversion Number 逆序对应用
+
expand source(双击可全选代码)
⁂
HDU 2688 Rotate 求正序数,然后模拟
+
expand source(双击可全选代码)
⁂
HDU 2852 KiKi’s K-Number 求大于a的第k大元素,可以用二分枚举
+
expand source(双击可全选代码)
⁂
HDU 2227 Find the nondecreasing subsequences 利用树状数组求递增序列个数
+
expand source(双击可全选代码)
⁂
HDU 3450 Counting Sequence 类似2227
+
expand source(双击可全选代码)
⁂
HDU 2492 Ping Pong 求长度为3的顺序序列有多少个
+
expand source(双击可全选代码)
树状数组小结
分类:算法学习 | 作者:酷~行天下 | 发表于2011/07/10 1条评论 513views
最近做了HDU几道树状数组的题,小小总结一下……
树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n],那么查询a[1]+…+a
的时间是log级别的,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为log级别。
Cn = A(n – 2^k + 1) + … + An ;
此处的k为n的二进制形式末尾0的个数,可以利用Lowbit()函数找出k
注意:下标不能从0开始:
当i = 0,0 + Lowbit(0) = 0,会造成死循环!
主要三个函数:
+
expand source(双击可全选代码)
树状数组功能:
1、单点更新,区间求和(第一类)//HDU 1166 敌兵布阵
2、区间更新,单点求值(第二类)//HDU 1556 Color the ball
3 、逆序数的应用,可以求左边小于它的数,右边大于它的数,反过来可以求
⁂
题目:
HDU 1166 敌兵布阵 ,树状数组模板题,单点更新,区间求和
+
expand source(双击可全选代码)
⁂
HDU 1556 Color the ball 区间更新,单点求值
+
expand source(双击可全选代码)
⁂
HDU 1541 Stars 树状数组应用
+
expand source(双击可全选代码)
⁂
HDU 1892 See you~ 简单二维树状数组
+
expand source(双击可全选代码)
⁂
HDU 2642 Stars 二维树状数组
+
expand source(双击可全选代码)
⁂
HDU 3584 Cube 三维树状数组,只有0,1的区间更新,单点求值
+
expand source(双击可全选代码)
⁂
HDU 2689 Sort it 求逆序对
+
expand source(双击可全选代码)
⁂
HDU 2838 Cow Sorting 逆序数的应用
+
expand source(双击可全选代码)
⁂
HDU 1394 Minimum Inversion Number 逆序对应用
+
expand source(双击可全选代码)
⁂
HDU 2688 Rotate 求正序数,然后模拟
+
expand source(双击可全选代码)
⁂
HDU 2852 KiKi’s K-Number 求大于a的第k大元素,可以用二分枚举
+
expand source(双击可全选代码)
⁂
HDU 2227 Find the nondecreasing subsequences 利用树状数组求递增序列个数
+
expand source(双击可全选代码)
⁂
HDU 3450 Counting Sequence 类似2227
+
expand source(双击可全选代码)
⁂
HDU 2492 Ping Pong 求长度为3的顺序序列有多少个
+
expand source(双击可全选代码)
相关文章推荐
- 树状数组题目总结(一)
- 树状数组(Binary Indexed Tree) 总结
- 树状数组总结
- 线段树&树状数组总结篇
- 树状数组总结
- 线段树和树状数组的认识与总结
- 树状数组题目总结三( 上)( HOJ 2275 Number sequence )
- 树状数组总结
- 树状数组 总结
- 树状数组(总结篇)
- CDQ分治总结(CDQ,树状数组,归并排序)
- 树状数组总结
- 有关树状数组的几个总结
- 树状数组学习以及题目总结
- ( poj 2352,poj 3067, poj2481)树状数组题目总结(二)
- 树状数组 区间修改区间求和总结
- 树状数组总结
- 线段树 + 树状数组 【模板总结】
- 树状数组总结
- 线段树&树状数组总结篇