树状数组模板

来源:互联网 发布:2016怎么躲过淘宝排查 编辑:程序博客网 时间:2024/06/05 21:17
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int a[100],n,m;int lowbit(int x){    return x&(-x);}void add(int pos,int x){    while(pos<=n){        a[pos]+=x;        pos+=lowbit(pos);    }}int sum(int x){    int s=0;    while(x>0){        s+=a[x];        x-=lowbit(x);    }    return s;}int main(){    while(~scanf("%d %d",&n,&m))    {        memset(a,0,sizeof(a));        int x;        for(int i=1;i<=n;i++){            scanf("%d",&x);            add(i,x);        }        for(int i=0;i<m;i++){            int x,y;            scanf("%d %d",&x,&y);            cout << sum(y)-sum(x-1) << endl;        }    }    return 0;}

0 0
原创粉丝点击