树状数组
来源:互联网 发布:linux虚拟文件系统vfs 编辑:程序博客网 时间:2024/06/05 06:58
昨天老师有讲到树状数组自己下来查了下资料及一些学习
参考资料http://www.cnblogs.com/zhangshu/archive/2011/08/16/2141396.html
#include <iostream>#include <stdio.h>#include <stdlib.h>#define N 16using namespace std;int a[N],c[N];int lowbit(int x)//取出x二进制从的最后一个1 例,x=6 二进制为0110 则lowbit(6)=0010 转换为10进制就是2{ return x&(-x);}void creat()//创建c[n]数组{ int k; for(int i=1;i<=N;i++) { k=lowbit(i); for(int j=i;j>i-k;j--) c[i]+=a[j]; printf("%3d",c[i]); }}int sum(int n)//求和{ int sum=0; while(n>0) { sum+=c[n]; n-=lowbit(n); } return sum;}void modify(int x,int val)//修改{ while(x<=N) { c[x]+=val; x+=lowbit(x); }}int main(){ for(int i=1;i<=N;i++) { a[i]=rand()%10+1; printf("%3d",a[i]); c[i]=0; } printf("\n"); creat(); printf("\n"); int t; t=sum(8); printf("%d ",t); return 0;}
0 0
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- 树状数组
- c和c指针
- 【2048强势来袭】第七期:添加游戏分数模块
- 苹果手机获取设备唯一UDID号
- 欧拉道路 和 欧拉回路
- a[100]
- 树状数组
- easyui 打开多个tab页签,切换到第一次打开的页签时,其内容总是别的页签内容解决办法。
- leetcode-LRU Cache(2014.2.7)
- linux 安装 rz sz 命令
- 修改Hadoop集群的备份数
- CreateThread()和_biginthreadex()
- Spring的IoC的配置
- 什么是转向灯?使用转向灯有何技巧?
- 一个高效的内存池实现