您的位置:首页 > 其它

NOJ 123 树状数组 插线问点

2011-03-24 07:49 162 查看
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
using namespace std;
#define _size 1000010
int tab[_size];
int N;
int lowbit(int n){return n&(-n);}
void update(int pos,int v)
{
while(pos>0){tab[pos]+=v;pos-=lowbit(pos);}
}
int getposv(int pos)
{
int sum=0;
while(pos<=N){sum+=tab[pos];pos+=lowbit(pos);}
return sum;
}
int main()
{

int n,beg,end,v;cin>>n>>N;
char s1[10];
while(n--){
scanf("%s",s1);
if(strcmp("ADD",s1)==0){
scanf("%d%d%d",&beg,&end,&v);
update(beg-1,-v);
update(end,v);
}else{
scanf("%d",&beg);
printf("%d/n",getposv(beg));
}
}
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: