zhao_ry514114
赵若伊

导航

 
#include <bits/stdc++.h>
using namespace std;
long long c[5010][5010];
int n,m;
int lowbit(int x){
    return x &(-x);
}
void add(int x,int y,int z){
    for(int i=x;i<=n;i+=lowbit(i)){
        for(int j=y;j<=m;j+=lowbit(j)){
            c[i][j]+=z;
        }
    }
}
long long getsum(int x,int y){
    long long s=0;
    for(int i=x;i>0;i-=lowbit(i)){
        for(int j=y;j>0;j-=lowbit(j)){
            s+=c[i][j];
        }
    }
    return s;
}
long long query(int a,int b,int c,int d){
    return getsum(c,d)-getsum(a-1,d)-getsum(c,b-1)+getsum(a-1,b-1);
}
int main(){
    scanf("%d%d",&n,&m);
    int t;
    while(scanf("%d",&t)!=EOF){
        if(t==1){
            int x,y,k;
            scanf("%d%d%d",&x,&y,&k);
            add(x,y,k);
        }
		else{
            int a,b,c,d;
            scanf("%d%d%d%d",&a,&b,&c,&d);
            printf("%lld\n",query(a,b,c,d));
        }
    }
    return 0;
}
posted on 2025-08-25 21:33  zhao_ry514114  阅读(7)  评论(0)    收藏  举报