前缀和、区间和的差别

【前缀和】
定义:前缀和是指一个数组(或矩阵)中,从第一个元素到当前元素的累加和。通过预处理数组,构造一个前缀和数组,使得前缀和数组的每个元素表示原数组从第一个元素到该元素的累加和。‌
用途:
前缀和是一个预处理过程,通过构造前缀和数组来优化区间和的计算。
一维前缀和:
cin>>a[i], s[i]=s[i-1]+a[i]  (1≤i≤n)  或者  cin>>s[i], s[i]+=s[i-1]  (1≤i≤n)
二维前缀和:cin>>a[i][j], s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]  (1≤i≤n,1≤j≤m)

备注:图中每个方格代表 a[i][j]。

【区间和】‌
定义:区间和是指一个数组(或矩阵)中,任意两个元素之间(包括这两个元素)的所有元素的和。区间和的计算通常依赖于前缀和数组或其他数据结构来实现高效计算。
用途:
区间和是前缀和的一种应用结果,通过前缀和数组可以快速计算出任意区间的和。
一维区间和:
s[x2]-s[x1-1]    (x2≥x1)
二维区间和:s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]    (x2≥x1,y2≥y1)


【“斜十字法”图例助记二维前缀和及二维差分等公式】
很多朋友反映,二维前缀和及二维区间和的公式不好记。记都记不住,那就更谈不上应用了。
在这里给大家推荐一个技巧,保准记得牢靠。即,首先观察一维的公式,然后使用“斜十字法”的图例推衍记忆二维的公式。
例如,针对一维的“区间和 s[x2]-s[x1-1]  (x2≥x1)”,那么其二维的形式是什么呢?步骤如下:(1)由一维公式中的下标 x2、x1-1 推衍出二维公式中的下标为
(x2, y2)、(x1-1, y1-1)
(2)利用二维公式中的下标 (x2, y2)、(x1-1, y1-1) 进行“斜十字法”绘图如下。特别要注意,由于一维区间和公式中的 x2
于 x1-1 出现,所以“斜十字法”图例中推衍而得的二维区间和公式中的 x2、y2 要绘制在 x1-1、y1-1

(3)针对一维的“区间和 s[x2]-s[x1-1]  (x2≥x1)”公式形式,结合“斜十字法”图例,容易推衍求得二维的区间和公式为 s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]

【注意】
● 在图例中,约定 ① ④ 操作为“
+ ”,② ③ 操作为“ - ”。
● 本博客是自己创造的助记方法,仅供参考。这种助记方法以一维的形式为出发点,所以前提是必须
牢记一维的形式



【参考文献】

https://blog.csdn.net/hnjzsyjyj/article/details/145282546
https://blog.csdn.net/hnjzsyjyj/article/details/145290457
https://blog.csdn.net/hnjzsyjyj/article/details/144908502
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据开放共享和平台整合优化取得实质性突破的智慧物流开源了

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本可通过边缘计算技术…

K8s组件

一、Kubernetes 集群架构组件 K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。 主节点一般被称为 Master 节点,master节点上有 apis…

使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南

使用 Vite React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南 🌟 前言一、创建 React 19 项目二、集成 Tailwind CSS1️⃣ 安装依赖2️⃣ 配置 Vite 插件3️⃣ 引入 Tailwind4️⃣ 启动项目 三、配置路径别名1️⃣ 修改 TypeScript 配置2️⃣ 安装类型声明3…

基于Go语言 XTA AI聊天界面实现

项目开源地址: XTA-AI-SDK 人工智能技术的迅速发展,AI聊天应用变得越来越流行。本文将介绍如何使用Go语言和LCL库( Lazarus Component Library)创建一个功能丰富的AI聊天界面。项目主要包含以下模块: 项目背景 本项目旨在为开发…

Spring安装和使用(Eclipse环境)

一、Spring框架概述 1、 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复…

石子合并

断环为链。 环形的最优合并方式&#xff0c;一定可以展开成长为n的链来处理。 怎样才是最优的合并方式&#xff1f; n<100。 枚举处理。 #include<bits/stdc.h> using namespace std;signed main() {int n; cin>>n;vector<int>a(nnn1),suma;for(int …

在nodejs中使用RabbitMQ(六)sharding消息分片

RabbitMQ 的分片插件&#xff08;rabbitmq_sharding&#xff09;允许将消息分布到多个队列中&#xff0c;这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载&#xff0c;从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间…

半遮挡检测算法 Detecting Binocular Half-Occlusions

【1. 背景】&#xff1a; 本文分析【Detecting Binocular Half-Occlusions&#xff1a;Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上&#xff0c;这是1篇中…

《open3d +pyqt》AABB计算

《open3d +pyqt》AABB计算 一、效果展示二、qt设置2.1界面设置2.2 py文件生成三、核心代码一、效果展示 二、qt设置 2.1界面设置 添加动作AABB: 布局参数: 2.2 py文件生成 更新Mainwindow.py 生成py文件 三、核心代码 代码如下: main.py文件

CAS单点登录(第7版)10.多因素身份验证

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; 多因素身份验证 概述 多因素身份验证 &#xff08;MFA&#xff09; 多因素身份验证&#xff08;Multifactor Authentication MFA&#xff09;是一种安全机制&#xff0c;要求用户提供两种…

LeetCode1706

LeetCode1706 目录 LeetCode1706题目描述示例题目理解问题描述 示例分析思路分析问题核心 代码段代码逐行讲解1. 获取网格的列数2. 初始化结果数组3. 遍历每个球4. 逐行模拟下落过程5. 检查是否卡住6. 记录结果7. 返回结果数组 复杂度分析时间复杂度空间复杂度 总结的知识点1. …

坐井说天阔---DeepSeek-R1

前言 DeepSeek-R1这么火&#xff0c;虽然网上很多介绍和解读&#xff0c;但听人家的总不如自己去看看原论文。于是花了大概一周的时间&#xff0c;下班后有进入了研究生的状态---读论文。 DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型&#…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了&#xff0c;海报编辑器换方案了&#xff0c;如果后面用别的再更。 缘由-胡扯 导火…

滑动窗口算法篇:连续子区间与子串问题

1.滑动窗口原理 那么一谈到子区间的问题&#xff0c;我们可能会想到我们可以用我们的前缀和来应用子区间问题&#xff0c;但是这里对于子区间乃至子串问题&#xff0c;我们也可以尝试往滑动窗口的思路方向去进行一个尝试&#xff0c;那么说那么半天&#xff0c;滑动窗口是什么…

resultType,jdbcType,parameterType区别

1. resultType 用途&#xff1a; 用于定义 SQL 查询结果的返回类型。 直接将查询结果映射到指定的 Java 类型&#xff08;基本类型、POJO 或 Map&#xff09;。 特点&#xff1a; 要求数据库字段名与 Java 对象的属性名完全一致&#xff08;或通过别名匹配&#xff09;。 …

数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例

AI大模型DEEPSEEK使用方法及案例 ——提升职场人士工作效率 打造数字化转型新利器 课程背景&#xff1a; 很多企业和员工存在以下问题&#xff1a; 不知道DEEPSEEK的发展现状及价值&#xff1f;不知道DEEPSEEK提示词设计方法论&#xff1f;不知道DEEPSEEK的针对性使用案例&…

Spring Boot项目接收前端参数的11种方式

大家好&#xff0c;我是。在前后端项目交互中&#xff0c;前端传递的数据可以通过HTTP请求发送到后端&#xff0c; 后端在Spring Boot中如何接收各种复杂的前端数据呢&#xff1f;这篇文章总结了11种在Spring Boot中接收前端数据的方式。 1 搭建项目 1.通过Spring Initializr…

Deesek:新一代数据处理与分析框架实战指南

Deesek&#xff1a;新一代数据处理与分析框架实战指南 引言 在大数据时代&#xff0c;高效处理和分析海量数据是企业和开发者面临的核心挑战。传统工具如Pandas、Spark等虽功能强大&#xff0c;但在实时性、易用性或性能上仍有提升空间。Deesek&#xff08;假设名称&#xff…

算法笔记 02 —— 入门模拟

本系列为胡凡编著的算法笔记当中代码部分的精简版整理&#xff0c;笔者也在同时准备Leetcode刷题和实习面试&#xff0c;希望为有一定编码和数据结构基础的同学提供一份系统型的参考&#xff0c;以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…

Node.js技术原理分析系列——Node.js调试能力分析

本文由体验技术团队屈金雄原创。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境&#xff0c;它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8引擎构建的&#xff0c;专为高性能、高并发的网络应用而设计&#xff0c;广泛应用于构建服务器端应…