子矩阵的和 刷题笔记 {二维前缀和}

首先我们的目标是让 sij表示为其左方和上方形成的矩阵所有元素的和

加上si-1j和sij-1后 si-1j-1部分重复了所以减去

最后加上aij即可完成目标

sij=si-1j+sij-1-si-1j-1+aij;

然后看题目要求

要求x1,y1,x2,y2围成的小正方形内的元素和

我们利用刚刚处理好的sij来操作

将是sx2y2圈成的大正方形里面扣掉这两块

即sx2y1-1和sx1-1y2

最后加回去重复减去的sx1-1y1-1即可

所以式子为 sx2y2-sx2y1-1-sx1-1y2+sx1-1y1-1

代码

#include<iostream>

#include<cstring>

#include<cstdio>

#include<algorithm>

using namespace std;

const int N=1010;

int aNN,sNN;

int n,m,q;

int main(){

cin>>n>>m>>q;

for(int i=1;i<=n;i++)

{

for(int j=1;j<=m;j++)

{

cin>>aij;

sij=si-1j+sij-1-si-1j-1+aij;

}

}

while(q--){

int x1,y1,x2,y2;

cin>>x1>>y1>>x2>>y2;

cout<<sx2y2-sx2y1-1-sx1-1y2+sx1-1y1-1;

}

return 0;

}

相关推荐
库玛西11 分钟前
深入浅出传输层:UDP 与 TCP 协议全景指南
linux·服务器·网络·c++·笔记·tcp/ip·udp
知产xiao_xin7 小时前
知识产权入门 —— 相关权(邻接权)
经验分享·笔记·知识产权
自小吃多8 小时前
DXF文件导入与PCB板框定义笔记
笔记·嵌入式硬件
jike_20269 小时前
iPhone采访录音同时拍现场照片的APP:图片音频同步记录实测
笔记·智能手机·音视频·语音识别
————A11 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
奔跑的痕迹11 小时前
如何删除引力画报?
笔记
zbyyd11 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
知产xiao_xin11 小时前
知识产权入门 —— 版权
经验分享·笔记·知识产权
呆萌很12 小时前
英语 1‑12 月单词联想记忆
笔记
金立基包装胶水13 小时前
纸袋热封频繁不良,先排查胶料这一堆问题
大数据·笔记·其他