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

首先我们的目标是让 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;

}

相关推荐
摇滚侠7 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
silvamux_9 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
蒸蒸yyyyzwd10 小时前
kafka、redis、mysql不熟悉问题总结
笔记·八股
hgy896910 小时前
深度学习(小白笔记)——迁徙
人工智能·笔记·深度学习
摇滚侠10 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
前进的李工13 小时前
Agent 学习笔记 02:Harness 与工作流怎么理解
笔记·学习·agent·工作流·harness
海鸥-w15 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
滴啦嘟啦哒15 小时前
【具身笔记】【原理探究】一、对PI05源码的实践笔记
笔记·python·vla·具身
览讯冷却17 小时前
冷却塔噪声的健康危害与法规要求的技术梳理
经验分享·笔记·科技·其他·百度·制造·业界资讯
Dory_Youth17 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记