树状数组

// BITree
int bitree[maxn];
#define lowbit(n) ((n)&(-n))
void BuiBIT(int n,int a[]){
	for(int i=1;i<=n;i++)
		Update(i,a[i]);
}
void Update(int n,int val){
	for(i=n;i<=rst;i+=lowbit(i))
		bitree[i]+=val;
}
int Query(int lst,int rst){
	int sum=bitree[rst];
	for(int i=lst;i>0;i-=lowbit(i))
		sum-=bitree[i];
	return sum;
}

 

posted on 2013-08-13 12:24  Amyc  阅读(75)  评论(0编辑  收藏  举报