AcWing 798. 差分矩阵
原题链接
简单
作者:
xunqian
,
2022-03-31 22:01:44
,
所有人可见
,
阅读 144
C++ 代码
#include <iostream>
using namespace std;
const int N = 1010;
int n,m,q,x1,y1,x2,y2,c;
int a[N][N],s[N][N];
int main(){
cin >> n >> m >> q;
for(int i = 1; i <= n;i ++){
for(int j = 1;j <= m;j ++){
cin >> a[i][j];
s[i][j] = a[i][j] - a[i-1][j] - a[i][j-1] + a[i-1][j-1];//获取单个元素
}
}
while(q --){
cin >> x1 >> y1 >> x2 >> y2 >>c;
s[x1][y1] +=c;
s[x1][y2+1] -=c;
s[x2+1][y1] -=c;
s[x2+1][y2+1] +=c;
}
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= m;j ++)
a[i][j] = s[i][j] +a[i-1][j]+a[i][j-1]-a[i-1][j-1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<' ';}
cout<<endl;
}
return 0;
}