首页 > 编程语言 >基础算法(九)二维前缀和模板---以题为例

基础算法(九)二维前缀和模板---以题为例

时间:2024-02-03 14:22:19浏览次数:23  
标签:前缀 int 矩阵 整数 --- y1 y2 模板 1000

输入一个 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−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
#include <iostream>

using namespace std;

const int N = 1010;

int n, m, q;
int s[N][N];

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", &s[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];

    while (q -- )
    {
        int x1, y1, x2, y2;
        scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
        printf("%d\n", s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1]);
    }

    return 0;
}

 

标签:前缀,int,矩阵,整数,---,y1,y2,模板,1000
From: https://www.cnblogs.com/Ghost-Knight/p/18004741

相关文章

  • 第一篇-安装工程专业基础知识
      1.电气:强电弱电,强电比如有电力电缆,比较粗,弱电有控制电缆细,强电频率低,弱电频率大弱电主要处理对象是信息,强电主要处理对象是能源(电力) ......
  • 对称字符串-od-python
    题目描述对称就是最大的美学,现有一道关于对称字符串的美学。已知:第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错!就是第个字符串=第i-1号字符串取反+第i-1号字符串取反(R->B,B->R)现在告诉你n......
  • ICLR 2024 | Mol-Instructions: 面向大模型的大规模生物分子指令数据集
    Mol-Instructions:面向大模型的大规模生物分子指令数据集 发表会议:ICLR2024论文标题:Mol-Instructions:ALarge-ScaleBiomolecularInstructionDatasetforLargeLanguageModels论文链接:https://arxiv.org/pdf/2306.08018.pdf代码链接:https://github.com/zjunlp/Mol......
  • 基础算法(八)前缀和模板---以前缀和题目为例
    题目如下输入一个长度为 n的整数序列。接下来再输入 m个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,......
  • (坚持每天写算法)算法学习与复习part1基础算法1-13——位运算
    最近确实有在写算法,在写dp,之前学的时候不全,被计数,树型等dp折磨了一下。位运算是将重点放在数字的位上,通常作为辅助行动,比如状态dp,有的时候是为了节省时空复杂度而使用的。这是今天的题目: 位运算应用的情况除了上面讲的,还有单纯的位问题,上面的题目就是一个例......
  • 设计模式-概述
    前言软件开发流程大致分为以下3大流程需求分析程序分析和设计程序开发设计模式是程序员在设计程序阶段,重要的参考依据,可以帮我们设计出更加松耦合、易于扩展的程序; 设计模式概念设计模式是针对软件设计中普遍存在的(反复出现)的各种问题,所提出的解决方案。每1个设计模式......
  • 无涯教程-reduceRight()函数
    reduceRight()方法将数组元素计算为一个值(从右到左),以将其简化为单个值。reduceRight()-语法array.reduceRight(callback[,initialValue]);callback    - 对数组中的每个值执行的函数。initialValue- 用作首次调用回调的第一个参数的对象。reduceRigh......
  • 金蝶云星空表单服务规则设置-基础资料和复选框判断
     一、语法规则基础资料判断:标识=null复选框判断打钩:标识=true 二、业务需求售后单审核时,如果物料启用了序列号管理,明细序列号资料必须选择。 三、开发实现  四、测试记得一定要重新启动环境。 ......
  • 【C++】力扣101-平方数之和
    给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2+b2=c 。使用双指针:#include<iostream>#include<math.h>usingnamespacestd;booljudge(longc){if(c<0)returnfalse;longa=0;longb=(int)sqrt(c);longsum=0;while......
  • 物联网浏览器(IoTBrowser)-MQTT协议集成和测试
    一、简介MQTT(消息队列遥测传输)是ISO标准(ISO/IECPRF20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订......