树状数组

原创 2016年08月29日 20:46:20

今天听学长讲了树状数组,不得不说一脸懵逼,哈哈。回来后写了两个入门题,但依然被坑得挺惨,数据范围的问题,2333,狂爆int,
下次看题时,一定要注意数据范围的问题,int大概可以开到10^9吧,要珍重,另外学了一个数据的离散化,即对于值特别大,而n(个数)很小的情况,可以用下标来代替值,因为在一个数组时,它的大小开到10^8. 9次方的话就会爆掉了,编译都通不过
树状数组的开端是1啊,要记住啊。否则会TLE的

版权声明:本文为博主原创文章,未经博主允许不得转载。

求逆序对 (树状数组版)

基本思想和线段树求解逆序数是一样的,前一篇《求逆序对 线段树版》也介绍过,先对输入数组离散,数组里的元素都不相同可以直接hash,存在相同的数话可以采用二分。 离散化后对于每个f[i],找到f[i]...
  • u013923947
  • u013923947
  • 2014年08月18日 14:53
  • 723

树状数组求区间最大值

讲这个的博文已经不少了,但感觉不够详细不够通俗易懂,所以我尝试着更详细更通俗易懂的说一下我的理解。   这个算法只支持单点修改和区间查询最值。每一次维护和查询的时间复杂度都是O((logn)^2),但...
  • u010598215
  • u010598215
  • 2015年09月04日 10:42
  • 5172

关于树状数组一些有意思的东西

嘛~最近刚刚学会树状数组,写个blog记录一下心得。树状数组呢,核心是一个叫lowbit的东西,lowbit(x)=x&-x=x的最后一位1的大小。 一、一个经典问题 一个初始值为0的k位计数器...
  • TA201314
  • TA201314
  • 2016年04月28日 09:23
  • 1585

对树状数组的一点理解

树状数组 一、概述 树状数组是一种 用数组进行存储的 自下而上进行操作的  多叉树。 最基本的应用就是维护一个支持两种操作的数列:1.让A[i]加上某数X     2.求一个区间A[L] + A[L+...
  • u012891242
  • u012891242
  • 2015年04月13日 17:01
  • 1333

hdu 5147 Sequence II(树状数组,前缀和,后缀和)

Sequence II Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To...
  • acm_cxq
  • acm_cxq
  • 2016年07月14日 23:01
  • 438

离散化+树状数组求逆序数

题目:POJ2299   离散化是一种常用的技巧,有时数据范围太大,可以用来放缩到我们能处理的范围 因为其中需排序的数的范围0---999 999 999;显然数组不肯能这么 大;而N的最大范围是50...
  • ACdreamers
  • ACdreamers
  • 2013年01月19日 14:52
  • 4255

树状数组---原理代码实现

刚刚学了树状数组,有必要总结一下;参考了大牛的博客
  • u011644423
  • u011644423
  • 2014年08月01日 10:21
  • 1651

详解树状数组 区间修改求和

呃.... 我这个人 ... 看到好东西就想转..... 其实这个问题自己之前研究了一下 懒得写 转载一篇吧... 从前有个东西叫树状数组,它可以轻易实现一些简单的序列操作,比如单点修改,区...
  • BlackJack_
  • BlackJack_
  • 2017年07月11日 20:22
  • 942

树状数组与其应用(Python实现)(1)

数组-树状数组如果程序需要维护一个数组的**前缀和**,S[i] = a[0]+ a[1] + …… + a[i-1]. 那么一旦数组中的一个元素 a[k]发生改变,则S[k+1] …… S[N] 都...
  • QHjust
  • QHjust
  • 2016年05月26日 15:28
  • 476

NOIP提高组——树状数组

树状数组相较于线段树通俗易懂,代码简单。 先写点更新,区间查询。 #include using namespace std; const int MAXN = 500000; int bit[MA...
  • G1342522389
  • G1342522389
  • 2017年08月24日 21:35
  • 162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树状数组
举报原因:
原因补充:

(最多只允许输入30个字)