2 条题解

  • 1
    @ 2025-3-23 15:18:57
    #include<bits/stdc++.h>
    using namespace std;
    int diff[1001][1001];
    int a[1001][1001]; 
    int n,m;
    void build() {
    	for(int i=1; i<=n; i++) {
    		for(int j=1; j<=m; j++) {
    			diff[i][j]+= diff[i-1][j]+diff[i][j-1]-diff[i-1][j-1];
    		}
    	}
    }
    void add(int x1,int y1,int x2,int y2,int d) {
    	diff[x1][y1]+=d;
    	diff[x2+1][y1]-=d;
    	diff[x1][y2+1]-=d;
    	diff[x2+1][y2+1]+=d;
    
    }
    int main() {
    	int q;
    	cin>>n>>m>>q;
    	for(int i=1; i<=n; i++) {
    		for(int j=1; j<=m; j++) {
    			cin>>a[i][j];
    			diff[i][j] = a[i][j] - a[i-1][j] - a[i][j-1] + a[i-1][j-1];
    		}
    	}
    	for(int i=1;i<=q;i++){
    		int x1,y1,x2,y2,d;
    		cin>>x1>>y1>>x2>>y2>>d;
    		add(x1,y1,x2,y2,d);
    	}
    	build();
    	for(int i=1; i<=n; i++) {
    		for(int j=1; j<=m; j++) {
    			cout<<diff[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    
    

    信息

    ID
    809
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    22
    已通过
    10
    上传者