二维差分
User966827 · · 个人记录
include<iostream>
using namespace std; int a[1005][1005]; int b[1005][1005]; int he[1005][1005]; int main() { int n,m,k,x1,x2,y1,y2,num; cin>>n>>m>>k; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; } } for(int i=1;i<=k;i++) { cin>>x1>>x2>>y1>>y2>>num; b[x1][y2]+=num; b[x2+1][y1]-=num; b[x1][y2+1]-=num; b[x2+1][y2+1]+=num; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { he[i][j]=he[i-1][j]+he[i][j-1]-he[i-1][j-1]+b[i][j]; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cout<<he[i][j]+a[i][j]<<" "; } cout<<"\n"; } return 0; }