当前位置: 首页 > article >正文

前缀和 (一维 二维)

前缀和作用:

快速求出原数组中一段数组的和 

思路

1.预处理前缀和数组

2.用公式求区间和

公式:

二维前缀和:


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

 

 题型

一维

二维

 题解

一维

#include <iostream>

using namespace std;

const int N = 100010;

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

int main()
{
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);

    for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + a[i]; // 前缀和的初始化

    while (m -- )
    {
        int l, r;
        scanf("%d%d", &l, &r);
        printf("%d\n", s[r] - s[l - 1]); // 区间和的计算
    }

    return 0;
}

二维

#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;
}


http://www.kler.cn/a/508171.html

相关文章:

  • MySQL 数据库 :SQL 语句规约(不得使用外键与级联,一切外键概念必须在应用层解决。)
  • Web渗透测试之伪协议与SSRF服务器请求伪装结合? 能产生更多的效果
  • 【c++继承篇】--继承之道:在C++的世界中编织血脉与传承
  • 使用 Docker 部署 Java 项目(通俗易懂)
  • 浅谈云计算20 | OpenStack管理模块(下)
  • 【15】Word:互联网发展状况❗
  • 彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构
  • C++ 的 CTAD 与推断指示(Deduction Guides)
  • 《Opencv》图像金字塔与采样
  • 【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
  • Elasticsearch:Jira 连接器教程第二部分 - 6 个优化技巧
  • Unsloth 大模型微调工具与 llama.cpp 量化推理库简介及其预训练操作方法
  • 20250118 Flink中的延迟执行机制和数据处理的逻辑拓扑结构(向圖)
  • 基于 Spring Boot、Vue 实现的调问开源问卷系统
  • Linux操作命令之云计算基础命令
  • 安卓端使用线程下载文件卡滞
  • 基于javaweb的SpringBoot景区旅游管理系统设计和实现(源码+文档+部署讲解)
  • Biotin sulfo-N-hydroxysuccinimide ester ;生物素磺基-N-羟基琥珀酰亚胺酯;生物素衍生物;190598-55-1
  • [Azure] 如何解决个人账号无法直接登录的问题:利用曲线救国方法访问Speech Studio
  • 利用爬虫获取某学习软件的考试题库(带源码)
  • LLM(大语言模型)支撑下的传统工作流转型发展为AI工作流
  • linux的用户管理和权限设置相关命令
  • 工业视觉5-工业视觉选型
  • C++(二十一)
  • DNS服务学习
  • 基于微信小程序教学辅助系统设计与实现(LW+源码+讲解)