Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
18544 | hhz123 | 【前缀与差分】差分矩阵 | C++ | 通过 | 85 MS | 6308 KB | 669 | 2023-02-26 11:21:29 |
#include <bits/stdc++.h> using namespace std; const int N=1010; int ds[N][N],as[N][N]; void insert(int a,int b,int c,int d,int x){ ds[a][b]+=x; ds[a][d+1]-=x; ds[c+1][b]-=x; ds[c+1][d+1]+=x; } int main(){ int n,m,q; cin>>n>>m>>q; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&as[i][j]); insert(i,j,i,j,as[i][j]); } } while(q--){ int a,b,c,d,x; cin>>a>>b>>c>>d>>x; insert(a,b,c,d,x); } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ ds[i][j]+=ds[i-1][j]+ds[i][j-1]-ds[i-1][j-1]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cout<<ds[i][j]<<" "; }cout<<endl; } return 0; }