树状数组
来源:互联网 发布:it应届生简历 编辑:程序博客网 时间:2024/06/03 22:02
看了半天树状数组,感觉到其神奇,但没懂其原理,先贴个模板,带我细细研究...⊙﹏⊙b
/*一定要注意数组c的初始化,N是数组的大小,modify的功能是把第n个元素加上delta,而sum的功能则是求从第一个元素开始到第n个元素之和,当然也可以求一段区间上的和,比如我要求第x个元素到第y个元素的和,答案就是sum(y) - sum(x - 1)*/#include <iostream>using namespace std;int N,c[1000],a[10];int lowbit( int n ){ return n & (-n);}void modify( int n, int delta ){ while ( n <= N ) { c[n] += delta; n += lowbit(n); }}int sum( int n ){ int ret = 0; N=10; while ( n != 0 ) { ret += c[n]; n -= lowbit(n); } return ret;}int main(){for(int i=1;i<=10;i++){modify(i,i);}cout<<sum(4)<<endl;return 0;}
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 桌面widget工具
- QT一些配置问题
- python中调用C++写的动态库
- Centos5.6安装MUNIN
- 超有用的,从此vi变得友好了
- 树状数组
- 公历转农历算法(C语言)
- Centos 6.3上安装配置KVM
- 让发版更容易--增量包批处理命令1.2
- 在程序中关闭iPhone
- window 查端口占用进程命令
- 农历两百年算法(1901~2100)【C语言代码】
- vlc configure 后面的参数解译
- 五十个UI设计资源网站