天天看点

【总结】树状数组总结

因为原来很在就学了线段树,线段树打起来特别爽,再加上在第一次看到树状数组的时候,说树状数组能干的事,线段树都可以干,所以原来就没有学这个,现在把树状数组补上了,觉得这还是一个很有意思的数据结构,而且它常数小,写起来短

我觉得要说树状数组就要从最基本的树状数组说起,最基本的就是单点修改区间查询了吧,然后其他的基本上都是这个的变形

算法具体怎么做我就不发了,说一下我对各个算法的看法吧

单点修改区间查询和区间修改单点查询这两个我是推荐首选树状数组的,应为写起来简单,短,不容易写错,速度快还方便调试

然后区间修改区间查询还有最值这两个问题,对于我来说可能线段树还是要还一些,毕竟树状数组刚接触不久,这连个操作又不是那么简单,线段树就不会写错了

然后逆序对我觉得树状数组这个方法实在是没有什么用,用归并

二维树状数组还是比线段树要好很多,就是感觉这个不怎么会考

然后下面我来罗列树状数组基本算法的网址:

单点修改 区间查询这个就不多说了,基本操作

区间修改 单点查询:

讲解:http://blog.csdn.net/u013514722/article/details/40192345

题目:http://www.codevs.cn/problem/1081/

区间修改 区间查询

讲解:http://blog.csdn.net/fsahfgsadhsakndas/article/details/52650026

题目:http://www.codevs.cn/problem/1082/

区间最值

讲解:http://www.cnblogs.com/ambition/archive/2011/04/06/bit_rmq.html

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1754

二维树状数组

讲解:http://blog.csdn.net/z309241990/article/details/9615259

题目:http://poj.org/problem?id=2155

树状数组求逆序对

讲解:http://www.cnblogs.com/shenshuyang/archive/2012/07/14/2591859.html

题目:http://poj.org/problem?id=2299

上面的所有题都是裸题,全是最基本的操作

然后上面每一个题我也写了对应的博客,感兴趣可以去看一下

概就是这个样子,如果有什么问题,或错误,请在评论区提出,谢谢。

继续阅读