树状数组
来源:互联网 发布:沙迪克火花机怎样编程 编辑:程序博客网 时间:2024/05/17 05:53
树状数组,顾名思义,是一个数组,形状是树状的。
如图:
为什么要用树状数组__为了方便。我们知道,如果要维护一个数组的前缀和,其复杂度是O(n^2)级别的。引入了树状数组后,复杂度骤然降至logn级别。
维护前缀和的时候,如果修改了原数组的一个值,那么其后的前缀和数组都要修改。那么能不能少修改一些,同时又能达到数组求和的目的呢。ok,树状数组就可以达到。
树状数组像并查集一样,小巧玲珑。爱煞了她。
给出其部分实现函数
int lowbit(int x){ return x & (-x);}long long sum(int n){ long long sum = 0; while (n > 0) { sum += c[n]; n -= lowbit(n); } return sum;}void change(int i, int num){ while (i <= n) { c[i] += num; i += lowbit(i); }}
太简单了,简单的就像int gcd(int a, int b){return b ? gcd(b, a % b) : a;}
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- Android Project 调用jar包形式的其他 Android Activity
- linux下查看进程的几种常用方法
- hdu - 3959 Board Game Dice(数学)
- 从waittype看sql server性能
- HDU 1301 Jungle Roads 最小生成树(简单)
- 树状数组
- 转载:STM32菜鸟成长记录---RS485通讯协议的应用
- Opencv 简单的图片显示
- shell_unset
- WPF DataGrid 获取选中行的选中列 (多选)
- mp3文件分析
- Lrc歌词批量下载助手 MP3歌词批量下载助手
- C++中静态成员函数访问成员变量问题
- 01(前端)input表单元素