定制设计网站,微商货源类网站源码,农产品推广方案,现货交易平台有哪些参考文章#xff1a;
https://blog.csdn.net/weixin_72060925/article/details/127835303 二维数组的前缀和练习#xff1a;
这里要注意的地方就是求子矩阵和的时候#xff0c;这里要减去的是x1-1#xff0c;y1-1的部分#xff0c;因为所求的目标值是包括边界的
//前缀… 参考文章
https://blog.csdn.net/weixin_72060925/article/details/127835303 二维数组的前缀和练习
这里要注意的地方就是求子矩阵和的时候这里要减去的是x1-1y1-1的部分因为所求的目标值是包括边界的
//前缀和基础练习 #includebits/stdc.h
#define int long long
using namespace std;
const int N5*1e310;
int n,m,q;
int nums[N][N]{0};
int s[N][N]{0};
signed main() {scanf(%d %d %d,n,m,q);for(int i1;in;i){for(int j1;jm;j){scanf(%d,nums[i][j]);s[i][j]s[i][j-1]s[i-1][j]nums[i][j]-s[i-1][j-1];}}while(q--){int x1,y1,x2,y2;scanf(%d %d %d %d,x1,y1,x2,y2);int ans0;//注意这里要减去的是x1-1y1-1的部分因为所求的目标值是包括边界的 anss[x2][y2]-s[x1-1][y2]-s[x2][y1-1]s[x1-1][y1-1];coutansendl;}return 0;
}
测试
/*
输入
3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4
输出
17
27
21*/