树状数组模板

来源:互联网 发布:淘宝充值红包退款 编辑:程序博客网 时间:2024/06/05 07:48
ll bit[1000005];int n;ll sum(int i)//注意自己修改类型{ll s=0;while(i>0){s+=bit[i];i-=i&(-i);}return s;}void add(int i,int x){while(i<=n){bit[i]+=x;i+=i&(-i);}} 
int lowbit(int t)//二维树状数组模板{return t & (-t);}void add(int x, int y, int d) {    int i, j;    for(i = x; i < N; i += lowbit(i))        for(j = y; j < N; j += lowbit(j))            mat[i][j] += d;}ll sum(int x, int y) {    ll res = 0;    int i, j;    for(i = x; i > 0; i -= lowbit(i))        for(j = y; j > 0; j -= lowbit(j))            res += mat[i][j];    return res;}


0 0
原创粉丝点击