首页 > 代码库 > 北大ACM暑期培训(1)——线段树,树状数组

北大ACM暑期培训(1)——线段树,树状数组

本文出自:http://blog.csdn.net/svitter


今天ACM暑期实训开始了,今天讲述的内容是:

7.14  数据结构(一): 线段树,树状数组,二维线段树。


线段树:invertal tree (称为区间树更加合适)

    作用:快速区间查询,用于解决区间统计的有关问题。

    重点:同层节点不重叠。

               每层最多有两个终止节点。

               更新和进行区间分解的时间复杂度均为log(n);

    方法:调用会多次使用递归更新插入查询;

    空间:开空间的时候,一般情况下开4n大小,2*2log[n] - 1 <= 4n;

               不同的情况可能MLE,

   

    具体的资料可以网上查询。

    参考题目:POJ3264——Balanced Lineup(线段树)

树状数组:

      作用:与线段树相同,快速求出任意区间的和。但是相对于线段树,更加容易编写,速度也有优势。

                单个元素修改,反复求区间。