子矩阵的和

题目描述

输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入格式

第一行包含三个整数n,m,q。

接下来n行,每行包含m个整数,表示整数矩阵。

接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。

输出格式

共q行,每行输出一个询问的结果。

数据范围

1≤n,m≤1000,
1≤q≤200000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤矩阵内元素的值≤1000

输入样例:

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

解题思路

这道题就是二维前缀和

前缀和初始化

在这里插入图片描述
就是对于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[x2][y2] - s[x2][y1-1] - x[x1-1][y2] + s[x1-1][y1-1]

代码实现

#include<iostream>
using namespace std;
const int N =1010;
int a[N][N],s[N][N];
int n,m,q;int main()
{scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)scanf("%d",&a[i][j]);//初始化前缀和for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)s[i][j] = s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];while(q--){int res = 0;int x1,y1,x2,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);res = s[x2][y2] - s[x2][y1-1] - s[x1-1][y2] +s[x1-1][y1-1];cout<<res<<endl;}return 0;
}

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

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

相关文章

jmeter 循环取值赋值给form_JMeter系列(三)逻辑控制器详解

循环控制器&#xff1a;指定迭代次数&#xff0c;可以用具体数字&#xff0c;也可以通过变量控制永远&#xff1a;表示无限循环点击查看示例&#xff1a;Jmeter实例(四)_图片爬虫简单控制器&#xff1a;这是最基础的一个控制器&#xff0c;它可以让脚本分层&#xff0c;变成一个…

c 复杂的前置后置面试题_OPPO Reno拆解:优秀工艺由外而内,复杂用料不负旗舰之名...

OPPO的新系列Reno手机最近吸引了不少注意力&#xff0c;不管是消费者还是手机极客都对其优秀的性能和强大的配置抱有极大的兴趣。最近&#xff0c;知名数码博主爱玩客对Reno十倍变焦版进行了拆解&#xff0c;从内部结构向我们揭示了这部手机的强大之处。并且点评道&#xff1a;…

差分矩阵

题目描述 输入一个n行m列的整数矩阵&#xff0c;再输入q个操作&#xff0c;每个操作包含五个整数x1, y1, x2, y2, c&#xff0c;其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上c。 请你将进行完所有操作后…

框架controller找不到_SpingBoot框架知识详解

Spring boot框架1、什么是Spring Boot&#xff1f;​ Spring Boot是Spring开源组织下的子项目&#xff0c;是Spring组件一站式解决方案&#xff0c;主要是简化了使用Spring的难度&#xff0c;简省了繁重的配置&#xff0c;提供了各种启动器&#xff0c;开发者能快速上手。Sprin…

架构的演变

基本概念 在介绍架构之前&#xff0c;为了避免部分读者对架构设计中的一些概念不了解&#xff0c;下面对几个最基础的概念进行介绍。 1.什么是分布式&#xff1f; 系统中的多个模块在不同服务器上部署&#xff0c;即可称为分布式系统&#xff0c;如Tomcat和数据库分别部署在…

axure8.0导出页面打不开问题_excel怎么转pdf?excel打不开?转换成PDF就行了

excel转pdf怎么做&#xff1f;年底最后一天了&#xff0c;我都被一堆的Excel文件搞得头疼&#xff0c;在这些时间里&#xff0c;要让我对几个G的文件进行操作&#xff0c;我已经是忙得不可开交&#xff0c;而在最后的最后&#xff0c;我的主管还说他的电脑无法打开我的Excel 了…

python怎么爬虫理数据_Python神技能 | 使用爬虫获取汽车之家全车型数据

最近想在工作相关的项目上做技术改进&#xff0c;需要全而准的车型数据&#xff0c;寻寻觅觅而不得&#xff0c;所以就只能自己动手丰衣足食&#xff0c;到网上获&#xff08;窃&#xff09;得&#xff08;取&#xff09;数据了。汽车之家是大家公认的数据做的比较好的汽车网站…

linux运算_CentOS「linux」学习笔记22:算术运算符、逻辑运算符、关系运算符

​linux基础操作&#xff1a;主要介绍啦算术运算符、逻辑运算符、关系运算符1.算术运算符[主要用来计算数值]注意使用expr运算时运算符和数值之间需要有空格&#xff0c;其他方式运算时不能有空格。常用算术运算符号&#xff1a;表示相加&#xff0c;&#xff0d;表示相减&…

python实现小型搜索引擎设计_基于JAVA的中小型饭店餐饮管理系统的设计与实现...

好程序设计擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON(DJANGO/FLASK)、THINKPHP、C#、安卓、微信小程序、MYSQL、SQLSERVER等&#xff0c;欢迎咨询今天将为大家分析一个中小型饭店餐饮管理系统(俗话说“民以食为天”,中国的饮食文化有着久远的历史。“吃”不仅仅指的是填饱肚子,它早…

评估报告有效期过期了怎么办_托福成绩过期了怎么办?

托福成绩是有期限的&#xff0c;考生申请美国大学的时候也只能在托福成绩有效期内。所以考托福的时候一定要关注一下托福成绩什么时候过期&#xff0c;以及大学申请的截止日期&#xff0c;提前做好安排。下面我们一起看看关于托福成绩有效期的相关问题。托福成绩有效期是多久&a…

装配组件_基于Haption力反馈系统的交互式装配仿真

在一个新工业产品的设计过程中&#xff0c;装配规划是非常重要的任务。如果规划不好将造成很大的资金浪费&#xff0c;致使组件不能正确地集成。例如典型问题&#xff1a;移动一个组件到指定位置但空间不足&#xff1b;使用工具够不到螺丝&#xff1b;操作者没有足够的视域以保…

作为唯一索引_Mysql什么情况下不走索引?

本文基于Mysql5.7版本和InnoDB存储引擎。1、InnoDB索引组织表在InnoDB引擎中&#xff0c;表都是按照主键顺序组织存放的&#xff0c;这种存放方式的表称为索引组织表。InnoDB存储引擎中的表&#xff0c;都有主键&#xff0c;如果没有显式声明主键&#xff0c;则采取以下措施&am…

r语言系统计算上是奇异的_R语言实现并行计算

Python作为多线程的编程语言在并行方面相对于R语言有很大的优势&#xff0c;然而作为占据统计分析一席之地的R语言自然不能没有并行计算的助力。那么我们来看下在R语言中有哪些并行的包&#xff1a;隐式并行&#xff1a;OpenBLAS&#xff0c;Intel MKL&#xff0c;NVIDIA cuBLA…

cansina 目录_dirmap - 一个高级web目录、文件扫描工具-华盟网

Dirmap一个高级web目录扫描工具&#xff0c;功能将会强于DirBuster、Dirsearch、cansina、御剑需求分析经过大量调研&#xff0c;总结一个优秀的web目录扫描工具至少具备以下功能&#xff1a;并发引擎能使用字典能纯爆破能爬取页面动态生成字典能fuzz扫描自定义请求自定义响应结…

唯有自己变得强大_物竞天择,适者生存,唯有强大自己,方能百毒不侵

物竞天择&#xff0c;适者生存&#xff0c;这是亘古不变的道理。面对生活中的困难&#xff0c;人生路上的挫折&#xff0c;我们只有足够坚强&#xff0c;足够勇敢&#xff0c;足够强大&#xff0c;才能战胜这一切。人活着要明白&#xff0c;你所有的负面&#xff0c;都源于你的…

树莓派c语言运行_树莓派完成简单的编程(四)

在上一篇文章中&#xff0c;我们学习了Vi文本编辑器&#xff0c;那么用它可以实现什么功能呢&#xff1f;树莓派python以及c语言编程这里我选择了最简单和很流行的两种编程语言&#xff1a;C语言和Python。实现最简单的功能&#xff0c;输出hello world。Python编程简介Python是…

python中的与或非_「Python基础」 While 循环语句

Python 编程中 while 语句用于循环执行程序&#xff0c;即在某条件下&#xff0c;循环执行某段程序&#xff0c;以处理需要重复处理的相同任务。其基本形式为&#xff1a;while 判断条件&#xff1a;执行语句……执行语句可以是单个语句或语句块。判断条件可以是任何表达式&…

go定时器 每天重复_Go语言学习基础-定时器、计时器

Timer计时器如果希望在将来的某个时间点执行Go代码&#xff0c;或者在某个时间间隔重复执行Go代码&#xff0c;使用Go内置的timer和ticker功能。先看定时器timer&#xff0c;然后再看计时器ticker。定时器代表未来的单个事件。告诉定时器需要等待多长时间&#xff0c;它返回一个…

html类名定义规则_HTML入门笔记1

HTML 是谁发明的?Tim Berners-LeeHTML起手式&#xff1a;HTML起手式 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…

怎样检测mysql5.5安装成功_64位wiN7系统中装配MySQL5.5.17(测试安装成功哦!)

64位wiN7系统中安装mysql5.5.17(测试安装成功哦&#xff01;&#xff01;~~)下载地址&#xff1a;[url] http://www.mysql.com/downloads/mysql/[/url]下载的话需要登录,你只需按照要求注册一个账号,然后下载即可.我下载的是mysql-5.5.17-winx64.msi版本.安装步骤:Step 1. Mysq…