RE求调
查看原帖
RE求调
722054
Yhy001楼主2024/6/30 13:45
#include <bits/stdc++.h>

using namespace std;

int lowbit(int x){return x&-x;}

int n,m;

struct tree{

    int tr[2050][2050];

    void add(int x,int y,int v){

        for(int i=x;i<=n;i+=lowbit(i))

            for(int j=y;j<=m;j+=lowbit(j)) tr[i][j]+=v;

    }

    int query(int x,int y){

        int ans=0;

        for(int i=x;i;i-=lowbit(i))

            for(int j=y;j;j-=lowbit(j)) ans+=tr[i][j];

        return ans;

    }

} t,ti,tj,tij;

int upd(int x,int y,int v){

    t.add(x,y,v),ti.add(x,y,v*x),tj.add(x,y,v*y),tij.add(x,y,v*x*y);

}

int query(int x,int y){

    return t.query(x,y)*(x*y+x+y+1)+ti.query(x,y)*(-y-1)+tj.query(x,y)*(-x-1)+tij.query(x,y);

}

int main(){

    //ios::sync_with_stdio(0);cin.tie(0);

    char op;cin>>op>>n>>m;

    while(cin>>op){

        int a1,a2,b1,b2;cin>>a1>>b1>>a2>>b2;

        if(op=='L'){

            int v;cin>>v;

            upd(a1,b1,v),upd(a1,b2+1,-v),upd(a2+1,b1,-v),upd(a2+1,b2+1,v);

        }else{

            cout<<query(a2,b2)-query(a1-1,b2)-query(a2,b1-1)+query(a1-1,b1-1)<<'\n';

        }

    }

}
2024/6/30 13:45
加载中...