1 条题解

  • 0
    @ 2025-3-23 10:57:59
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=1e3+5,inf=0x3f3f3f3f,mod=1e9+7;
    int a[N][N], d[N][N];
    // 323. 差分矩阵 
    
    void solve(){
        int n,m,q; cin>>n>>m>>q;
        for(int i=1; i<=n; i++)
        	for(int j=1; j<=m; j++){
        		cin>>a[i][j];
    //  此处公式属于人为构造的 
        		d[i][j] = a[i][j] -a[i-1][j] -a[i][j-1] +a[i-1][j-1];
    		}
    	int x1,y1,x2,y2,c;
    	while(q--){
    		cin>>x1>>y1>>x2>>y2>>c;
    		d[x1][y1] += c;
    		d[x1][y2+1] -= c;
    		d[x2+1][y1] -= c;
    		d[x2+1][y2+1] += c;
    	}
    	for(int i=1; i<=n; i++)
        	for(int j=1; j<=m; j++){
        		d[i][j] += d[i-1][j] + d[i][j-1] - d[i-1][j-1];
    			cout<<d[i][j] <<" \n"[j==m]; 
    		}
    }
    int main(){
    //    freopen("in.txt", "r", stdin);
        int t=1; // cin>>t;
        while(t--) {
            solve();
        }
        return 0;
    }
    
    • 1

    信息

    ID
    323
    时间
    1000ms
    内存
    512MiB
    难度
    4
    标签
    递交数
    103
    已通过
    48
    上传者