AcWing 796. 子矩阵的和
原题链接
简单
作者:
minux
,
2020-04-20 10:53:30
,
所有人可见
,
阅读 433
#include<bits/stdc++.h>
using namespace std;
const int N=1005;
int a[N][N];
int n, m, q;
int main(){
memset(a, 0x00, sizeof a);
cin>>n>>m>>q;
// 读入矩阵
for(int i=0; i<n; ++i)
for(int j=0; j<m; ++j)
cin>>a[i][j];
// 建立前缀和
int S[n+1][m+1];
memset(S, 0x00, sizeof S);
for(int i=1; i<=n; ++i)
for(int j=1; j<=m; ++j){
S[i][j] = S[i-1][j]+S[i][j-1]-S[i-1][j-1]+a[i-1][j-1];
}
// 读入查询, 根据容斥原理计算面积
int x1, y1, x2, y2;
while(q--){
cin>>x1>>y1>>x2>>y2;
int res = S[x2][y2]-S[x1-1][y2]-S[x2][y1-1]+S[x1-1][y1-1];
cout<<res<<endl;
}
return 0;
}