news 2026/8/25 2:26:27

竞赛.算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
竞赛.算法

前缀和

一、什么是前缀和

前缀和(Prefix Sum)是一种预处理数组的技巧,核心是用空间换时间,把多次区间求和从 O (n) 降到 O (1)。

二、一维前缀和(最常用)

1. 定义
  • 原数组:a[1..n](下标从 1 开始,方便边界)
  • 前缀和数组:pre[0..n]
    • pre[0] = 0(哨兵,避免判断)
    • pre[i] = a[1] + a[2] + ... + a[i](前 i 项和)

2. 递推公式

pre[i] = pre[i-1] + a[i]

3. 区间和公式
求区间 [l, r] 的和:

sum(l, r) = pre[r] - pre[l-1]
4. 示例

原数组:a = [2, 3, -1, 4](下标 1~4)前缀和:pre = [0, 2, 5, 4, 8]

  • sum(1,3) = pre[3] - pre[0] = 4 - 0 = 4
  • sum(2,4) = pre[4] - pre[1] = 8 - 2 = 6
5. 复杂度
  • 预处理:O (n)
  • 单次查询:O (1)
  • 空间:O (n)

三、二维前缀和(矩阵)

用于快速求子矩阵和

1. 定义
  • 矩阵:a[1..n][1..m]
  • 二维前缀和:pre[i][j]= 左上角 (1,1) 到 (i,j) 的子矩阵和
2. 构建公式
pre[i][j] = pre[i-1][j] + pre[i][j-1] - pre[i-1][j-1] + a[i][j]
3. 子矩阵和公式

求左上角 (x1,y1) 到右下角 (x2,y2) 的和:

sum = pre[x2][y2] - pre[x1-1][y2] - pre[x2][y1-1] + pre[x1-1][y1-1]

四、常见应用

  • 多次区间和查询
  • 子数组和为 k 的个数
  • 最大子数组和(结合动态规划)
  • 二维矩阵区域和快速查询

补充:数组全局变量的时候在启动程序时全部都会被初始化为0.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 2:26:07

大模型+知识图谱行业落地(非常详细),民航维修检索生成从入门到精通,收藏这一篇就够了!

摘要:本研究创新性地融合大语言模型、知识图谱技术及重排序方法,旨在以低成本、高质量实现民航维修历史方案检索与推荐方案生成,优化维修决策,提升维修效率与质量。研究利用大模型的分析推理能力,借助定制化知识图谱检…

作者头像 李华
网站建设 2026/8/25 2:24:07

Node.js RESTful API 深入解析

Node.js RESTful API 深入解析 引言 随着互联网技术的飞速发展,RESTful API 已成为构建现代Web应用程序的基础。Node.js 作为一种高效、轻量级的JavaScript运行环境,因其卓越的性能和灵活的异步编程模型,成为实现RESTful API的理想选择。本文将深入探讨Node.js RESTful AP…

作者头像 李华
网站建设 2026/7/14 16:51:30

Winform基于PaddleOCR图片文字提取方法

1.目的掌握Winform下基于Sdcb. PaddleOCR和OpenCvSharp实现图片文字的提取方法。⒉编程软件Visual Studio 2022⒊界面设计如下图设计了UI界面,包括使用Button、PictureBox和RichTextBox控件:本案例以下图特定图片为案例进行文字提取:⒋代码简…

作者头像 李华
网站建设 2026/7/14 16:51:33

日常工作问题总结

1. 标点符号不规范,如使用引号统一使用双引号,去掉不必要空格,js句尾使用; 2. 定义变量时注意使用var、let、const; 3. 语句过长时换行; 4. 复杂的ajax请求: $.ajax({url: /api/open/comment/g…

作者头像 李华
网站建设 2026/7/14 16:51:31

C#毕业设计——基于C#+asp.net+SQL server的办公自动化管理系统设计与实现(毕业论文+程序源码)——办公自动化管理系统

基于C#asp.netSQL server的办公自动化管理系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于C#asp.netSQL server的办公自动化管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PP…

作者头像 李华