首页 > 代码库 > AC日记——统计和 洛谷 P2068

AC日记——统计和 洛谷 P2068

统计和

 

思路:

  水题;

 

代码:

#include <bits/stdc++.h>using namespace std;#define maxn 100005int n,m,tree[maxn];inline void in(int &now){    int if_z=1;now=0;    char Cget=getchar();    while(Cget>9||Cget<0)    {        if(Cget==-) if_z=-1;        Cget=getchar();    }    while(Cget>=0&&Cget<=9)    {        now=now*10+Cget-0;        Cget=getchar();    }    now*=if_z;}inline int lowbit(int x){    return x&(-x);}inline void add(int x,int di){    while(x<=n)    {        tree[x]+=di;        x+=lowbit(x);    }}inline int sum(int l,int r){    l--;int res=0;    while(r) res+=tree[r],r-=lowbit(r);    while(l) res-=tree[l],l-=lowbit(l);    return res;}int main(){    in(n),in(m);int a,b;char op[4];    while(m--)    {        scanf("%s",op),in(a),in(b);        if(op[0]==x) add(a,b);        else printf("%d\n",sum(a,b));    }    return 0;}

 

AC日记——统计和 洛谷 P2068