树状数组及例题(含题解)(持续更新)
和线段树不同的是,树状数组的代码量相对而言较少,而且感觉比线段树容易理解,但是也就是板子题简单
稍微变形,恐怕就有点难了
但是有个板子题,树状数组和线段树都可以解决的就是求区间和,(当然如果单纯的求区间和的话,前缀和是个不错的选择),但是如果需要修改元素的话,前缀和的时间复杂度可就远比树状数组和线段树要大了
个人觉得如果就这个问题而言的话,还是树状数组要好点,毕竟代码短,而且容易理解,操作更方便
树状数组的核心感觉就是那个lowbit
至于具体原理什么的,这篇博客是个很不错的选择:
https://blog.csdn.net/WhereIsHeroFrom/article/details/78922383
题目链接 | 考察点 | 题解代码 |
---|---|---|
hdu 1166:敌兵布阵 | 点更新,区间查询(求和) | 题解 |
hdu 1754:I Hate It | 点更新、区间查询(最值) | 题解 |
poj 2299:Ultra-QuickSort | 树状数组求逆序对、离散化 | 题解 |