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

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

加上s[i-1][j]和s[i][j-1]后 s[i-1][j-1]部分重复了所以减去

最后加上a[i][j]即可完成目标 

s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];

然后看题目要求

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

我们利用刚刚处理好的s[i][j]来操作

将是s[x2][y2]圈成的大正方形里面扣掉这两块

即s[x2][y1-1]和s[x1-1][y2]

最后加回去重复减去的s[x1-1][y1-1]即可 

所以式子为 s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1];

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1010;
int a[N][N],s[N][N];

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>>a[i][j];
            s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
        }
    }
    while(q--){
        int x1,y1,x2,y2;
        cin>>x1>>y1>>x2>>y2;
        cout<<s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]; 
    }
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++工程师面试题(数据库篇)

索引的优缺点 索引是一种支持快速查找特定行的数据结构&#xff0c;如果没有索引&#xff0c;就需要遍历整个表进行查找。用于提高数据检索的速度和效率。 好处&#xff1a; 提高检索速度&#xff1a; 索引可以加快数据的检索速度&#xff0c;因为它们允许数据库系统直接定位到…

Revit-二开之立面视图创建FilledRegion-(3)

在上一篇博客中介绍了FilledRegion的创建方法,这种方法通常只在平面视图中适用,在三维视图中也是无法创建的(目前研究的是这样的,如果有其他方法,请赐教)。 本片文章介绍一个下在立面视图中创建FilledRegion的方法,主要操作是在立面视图中拾取一个点,然后以该点为原点,…

YOLOv5 项目:推理代码和参数详细介绍(detect)

1、前言 本章将介绍yolov5项目的推理函数&#xff0c;关于yolov5的下载和配置环境&#xff0c;参考上一篇文章&#xff1a; YOLOv5 项目&#xff1a;环境配置-CSDN博客 pycharm 中打开的推理模块如红框中所示 pycharm将conda新建的虚拟环境导入&#xff0c;参考 &#xff1a;…

快速模幂(c++题解)

题目描述 试求ab%n的值&#xff0c;其中a、b、n均为整数范围内的数。 输入格式 三个整数即a、b、n。 输出格式 输出结果。 样例 样例输入 复制1 1 1样例输出 复制0 _____________________________________________________________________________ ok呀总算学到一个…

从 AI 的爆火聊聊用户界面(UI)的演进

目录 用户界面的起源与发展 用户界面的设计原则与趋势 用户界面未来的方向 小结 用户界面&#xff08;User Interface&#xff0c;简称 UI&#xff09;是人与计算机系统交互的媒介&#xff0c;用户可以通过用户界面向计算机发送指令&#xff0c;同时计算机可以通过用户界面…

面试 Java 基础八股文十问十答第十五期

面试 Java 基础八股文十问十答第十五期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;BIO, NIO, AIO 有什么…

简单实现Transformer的自注意力

简单实现Transformer的自注意力 关注{晓理紫|小李子}&#xff0c;获取技术推送信息&#xff0c;如感兴趣&#xff0c;请转发给有需要的同学&#xff0c;谢谢支持&#xff01;&#xff01; 如果你感觉对你有所帮助&#xff0c;请关注我。 源码获取&#xff1a;VX关注并回复chatg…

二叉树的右视图,力扣

目录 题目&#xff1a; 我们直接看题解吧&#xff1a; 快速理解解题思路小建议&#xff1a; 审题目事例提示&#xff1a; 解题方法&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现(DFS)&#xff1a; 代码1&#xff1a; 补充说明&#xff1a; 代码2&#xff1…

Vue.js中的$nextTick

其实目前在我现有的开发经历中&#xff0c;我还没有实际运用过$nextTick&#xff0c;今天在看书时&#xff0c;学习到了这个东西&#xff0c;所以做个笔记记录一下。 一、$nextTick是什么&#xff1f; $nextTick 是 Vue提供的一个方法&#xff0c;用于在 DOM 更新之后执行回调…

AI:148-开发一种智能语音助手,能够理解和执行复杂任务

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

浅谈钩子方法

何为钩子方法 钩子方法&#xff08;Hook methods&#xff09;是一种在面向对象编程中常用的设计模式&#xff0c;也被称为模板方法模式。在这种模式中&#xff0c;父类定义了一个算法的框架&#xff0c;并且将一些步骤的实现延迟到子类中。子类可以通过重写这些“钩子方法”来改…

[技巧]Arcgis之图斑四至点批量计算

前言 上一篇介绍了arcgis之图斑四至范围计算&#xff0c;这里介绍的图斑四至点的计算及获取&#xff0c;两者之间还是有差异的。 [技巧]Arcgis之图斑四至范围计算 这里说的四至点指的是图斑最东、最西、最南、最北的四个地理位置点坐标&#xff0c;如下图&#xff1a; 四至点…

青山隐隐,败叶萧萧

给定序列需满足二个条件:本身是质数&#xff0c;相邻二项之和仍为质数 首先一个偶数2*n不能通过2*k&#xff08;k取整数&#xff09;得到质数。 奇数2*n-12*k2*(nk)-1&#xff0c;可能得到质数 那么若序列中存在偶数&#xff0c;一定不满足第一个条件&#xff08;特判0,2&am…

STM32进阶笔记——复位、时钟与滴答定时器

本专栏争取每周三更新直到更新完成&#xff0c;期待大家的订阅关注&#xff0c;欢迎互相学习交流。 目录 一、复位1.1 软件复位1.2 低功耗管理复位 二、时钟2.1 系统时钟(SYSCLK)选择2.2 系统时钟初始化 三、滴答定时器&#xff08;Systick&#xff09;3.1 SysTick部分寄存器3.…

部署bpmn项目实现activiti流程图的在线绘制

本教程基于centos7.6环境中完成 github开源项目: https://github.com/Yiuman/bpmn-vue-activiti软件&#xff1a;git、docker 1. 下载源代码 git clone https://github.com/Yiuman/bpmn-vue-activiti.git2. 修改Dockerfile文件 声明基础镜像&#xff0c;将项目打包&#xff…

EasyRecovery数据恢复软件有什么优势呢?

EasyRecovery数据恢复软件具有以下优势&#xff1a; 强大的恢复能力&#xff1a;EasyRecovery采用先进的扫描和恢复技术&#xff0c;能够深度扫描存储设备&#xff0c;寻找并恢复因各种原因丢失的数据。无论是误删除、格式化、分区损坏还是病毒感染&#xff0c;它都能提供有效…

设计模式(十一)策略模式

请直接看原文:设计模式&#xff08;十一&#xff09;策略模式_某移动支付系统在实现账户资金转入和转出时需要进行身份验证,该系统为用户提供了-CSDN博客 ----------------------------------------------------------------------------------------------------------------…

LeetCode01 - 35.搜索插入位置

一、题目要求 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示…

SpringMVC 学习(十一)之数据校验

目录 1 数据校验介绍 2 普通校验 3 分组校验 4 参考文档 1 数据校验介绍 在实际的项目中&#xff0c;一般会有两种校验数据的方式&#xff1a;客户端校验和服务端校验 客户端校验&#xff1a;这种校验一般是在前端页面使用 JS 代码进行校验&#xff0c;主要是验证输入数据…

文物预防性保护系统方案的需求分析

没有文物保存环境监测&#xff0c;就不能实施有效的文物预防性保护。因此要建立文物预防性保护体系&#xff0c;一定要先有良好的文物状态监测制度,进而进行科学有效的文物保护管理。所以,导入文物预防性保护监测与调控系统,首先就是要针对文物进行全年温度、湿度、光照等关键参…