相关题目:
子矩阵的和https://www.acwing.com/problem/content/description/798/
相关代码:
/*
本题需要用到容斥原理。具体的思路看y总的视频。
*/
#include<iostream>
using namespace std;
int a[1001][1001];
int s[1001][1001];
int m,n,q;
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]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]; //借助第0行和第0列来缓冲。
}
}
int x1,y1,x2,y2;
for(int i=0;i<q;i++){
cin>>x1>>y1>>x2>>y2;
cout<<s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]<<endl;
}
return 0;
}