1 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N = 1010; int mp[N][N]; int b[N][N]; int res[N][N]; int n,m,q; void compute (int x1,int y1,int x2,int y2,int c) { b[x1][y1] += c; b[x2 + 1][y1] -= c; b[x1][y2 + 1] -= c; b[x2 + 1][y2 + 1] += c; } int main(){ scanf("%d %d %d",&n,&m,&q); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { scanf("%d",&mp[i][j]); compute(i,j,i,j,mp[i][j]); } } while (q--) { int x1,y1,x2,y2,c; scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&c); compute(x1,y1,x2,y2,c); } for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { res[i][j] = res[i - 1][j] + res[i][j - 1] - res[i - 1][j - 1] + b[i][j]; } } for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { printf("%d ",res[i][j]); } printf("\n"); } return 0; }
- 1
信息
- ID
- 90
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 89
- 已通过
- 36
- 上传者