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

数据预处理:前缀和算法详解

数据预处理:前缀和算法详解

文章目录

  • 数据预处理:前缀和算法详解
    • 1.算法原理
    • 2.算法作用
    • 3.C++代码实现
    • 4.实战题目

1.算法原理

基本概念

前缀和(Prefix Sum)是一种常用的数据预处理技术,它可以快速求解区间和问题,大大降低查询的时间复杂度。在处理一系列数据的区间查询时,前缀和能够提供高效的解决方案。
核心思想是:通过构建一个新数组,其中每个元素存储原数组前i个元素之和.

数学原理
在这里插入图片描述
构建过程
在这里插入图片描述


2.算法作用

核心功能

• 快速区间求和:可 O(1) 时间内计算任意区间 [l, r] 的和
• 降低时间复杂度:将区间求和的复杂度从 O(n) 优化到 O(1)

计算公式
在这里插入图片描述
适用场景

1. 频繁查询数组区间和
2. 二维前缀和(矩阵区域和)


3.C++代码实现

#include <iostream>
using namespace std;
const int N = 1e5+10;
int a[N], s[N];
int main() {int n, m;cin >> n >> m;// 输入数组(下标从1开始)for(int i = 1; i <= n; i ++) cin >> a[i];// 构建前缀和数组for(int i = 1; i <= n; i ++) s[i] = s[i-1] + a[i];// 处理查询while(m --) {int l, r;cin >> l >> r;cout << s[r] - s[l-1] << endl;}return 0;
}

注意事项


  1. 数组下标从1开始
  2. 前缀和数组初始化为 s[0] = 0
  3. 前缀和数组在数据范围超过int 时使用long long 数据类型

4.实战题目

前缀和算法会在如下题目中经常用到
求区间和
[蓝桥杯 2022 省 A] 求和


文章转载自:

http://RdS4xTF3.tzjqm.cn
http://lNUunKDX.tzjqm.cn
http://yLLDfreN.tzjqm.cn
http://PuEw6gpG.tzjqm.cn
http://YYuAuiy4.tzjqm.cn
http://tp303XwR.tzjqm.cn
http://mhd8OJqq.tzjqm.cn
http://4fKgCbmA.tzjqm.cn
http://GwFjqCej.tzjqm.cn
http://EXp7addK.tzjqm.cn
http://t5sb2bj2.tzjqm.cn
http://Y6lhjdrn.tzjqm.cn
http://cOAZOmqm.tzjqm.cn
http://xtXsaNHP.tzjqm.cn
http://plXR2RZw.tzjqm.cn
http://Poa5UMgP.tzjqm.cn
http://jnKURWIf.tzjqm.cn
http://XfrI5R8c.tzjqm.cn
http://HQN3rXW3.tzjqm.cn
http://Czv8BsgS.tzjqm.cn
http://S6TMHzo9.tzjqm.cn
http://WYFPeUfZ.tzjqm.cn
http://diZwvioN.tzjqm.cn
http://7Rww5Kj8.tzjqm.cn
http://GHhHz6Ny.tzjqm.cn
http://SyC0Z5jT.tzjqm.cn
http://32G87fjA.tzjqm.cn
http://kO4wmCgL.tzjqm.cn
http://PgynLVRw.tzjqm.cn
http://9MQ1hz51.tzjqm.cn
http://www.dtcms.com/a/151301.html

相关文章:

  • Vue3 + TypeScript 实现二维码生成与展示
  • poi生成横向文档以及复杂表头
  • 驱动开发硬核特训 · Day 18:深入理解字符设备驱动与子系统的协作机制(以 i.MX8MP 为例)
  • 欧拉计划 Project Euler54(扑克手牌)题解
  • MySQL运算符
  • stack和queue的学习
  • 【实证分析】ESG发展对企业新质生产力影响的研究—来自中国A股上市企业的经验
  • ROS第十二梯:ros-noetic和Anaconda联合使用
  • Python常用的第三方模块之【pymysql库】操作数据库
  • HarmonyOS 5.0应用开发——MVVM模式的应用
  • CF2103F Maximize Nor
  • AI 人工智能模型:从理论到实践的深度解析⚡YQW · Studio ⚡【Deepseek】【Chat GPT】
  • 深度学习中的黑暗角落:梯度消失与梯度爆炸问题解析
  • springboot+vue 支付宝支付(沙箱方式,测试环境使用)
  • VUE Element-ui Message 消息提示组件自定义封装
  • 如何在编译命令中添加灰度标识
  • cnas认证注意事项,cnas认证审核有效期?cnas认证难吗?
  • 思科路由器密码绕过+重置
  • uniapp小程序使用echarts
  • 湖南大学-操作系统实验四
  • python——模块、包、操作文件
  • 如何选择 Flask 和 Spring Boot
  • 【数据结构入门训练DAY-21】信息学奥赛一本通T1334-围圈报数
  • 深入解析C++ STL Stack:后进先出的数据结构
  • 新书推荐——《游·思——看世界 上》孔祥超 著
  • React Ref引用机制解析
  • 指定文件夹随机筛出图像
  • 卷积神经网络常用结构
  • # 构建和训练一个简单的CBOW词嵌入模型
  • 密码学(1)LWE,RLWE,MLWE的区别和联系