这题不知道出题者初中数学过了没,x和y都搞反了,我吐了,搞了我半天
#include <iostream>
using namespace std;
const int N=1040;
int a[N][N];
int b[N][N];
int main(void){
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];
b[i][j]=a[i][j]-a[i][j-1];
}
}
int x1,y1,x2,y2,c;
while(q--){
cin>>x1>>y1>>x2>>y2>>c;
for(int i=x1;i<=x2;i++){
b[i][y1]=b[i][y1]+c;
b[i][y2+1]=b[i][y2+1]-c;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=a[i][j-1]+b[i][j];
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
没啥好讲的,就是将矩阵拆成一个一个数组就行然后用差分的思想ac就OK了