蓝桥杯一维前缀和 | 算法基础

简单说两句

✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:后端小知识CSDN后端领域新星创作者 |阿里云专家博主

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝


亲爱的友友们,大家元旦快乐吖🧨🧨🧨🧨

祝各位友友们在2024年开开心心,顺顺利利,红红火火🎉🎉🎉🎉

image-20240101193509345

我们今天还是来讲解一个简单的算法吧,这个算法在比赛(蓝桥杯,ICPC,ACM)中用到的概率挺高的,经常用来优化时间复杂度,

这个算法的名字叫做 前缀和算法

概念

我们先来了解一下一些概念性的东西

前缀和(Prefix Sum)是算法中的一种技巧,主要用于处理数组或序列的累积和问题。在计算机科学中,前缀和数组是一个一维数组,其中每个元素是原数组对应位置之前所有元素的和。换句话说,前缀和数组的第i个元素是原数组从第0个元素到第i-1个元素的和。

🍎例如,给定一个数组A = [1, 2, 3, 4],其前缀和数组P = [1, 3, 6, 10]。这里,P[0] = A[0] = 1,P[1] = A[0] + A[1] = 1 + 2 = 3,P[2] = A[0] + A[1] + A[2] = 1 + 2 + 3 = 6,以此类推。

🍒前缀和的应用非常广泛,它可以用来解决许多问题,如:

  1. 区间和查询:给定一个区间[l, r],可以通过前缀和数组快速计算区间[l, r]内元素的和,即P[r] - P[l-1]。
  2. 更新操作:如果需要在原数组的某个位置增加一个值,可以通过更新前缀和数组来反映这个变化,而不需要重新计算整个数组的前缀和。
  3. 差分数组:前缀和数组可以用于构建差分数组,差分数组是前缀和数组的前缀和数组,可以用来解决一些需要计算相邻元素差的问题。
  4. 优化算法:在动态规划、二分查找等算法中,前缀和可以用于优化时间复杂度,减少不必要的计算。

🍓前缀和的构建和查询操作的时间复杂度都是O(n),其中n是数组的长度。在实际应用中,前缀和数组通常用于需要频繁查询区间和或进行区间更新的场景。

例子

下面我们开始实践环节

我们来看一道Acwing上面的模板题:

🔗我也直接给家人们要来了(贴心吧❤️):前缀和

image-20240101183422287

这题目意思还是很清晰吧

这个题我们肯定是不能直接双重循环去做的,肯定会TLE的,不信你可以试试💫

这个题的优化做法就是用前缀和来做,是很明显的模板题啦🍎

我们直接上code🍒

代码

AC代码清单

#include<bits/stdc++.h>
using namespace std;
int n,m,l,r;
int a[100010];
int sum[100010];
int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];} while(m--){cin>>l>>r;cout<<sum[r]-sum[l-1]<<"\n";}return 0;
}

这个代码也是非常简单,大家如果🈶疑问❓的话,可以在评论区留言哟🥂

【都看到这了,点点赞点点关注呗,爱你们】😚😚

抽象工厂  引导关注

💬

✨ 正在努力的小新~
💖 超级爱分享,分享各种有趣干货!
👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板
🌈 感谢关注,关注了你就是我的超级粉丝啦!
🔒 以下内容仅对你可见~

作者:后端小知识CSDN后端领域新星创作者 | 阿里云专家博主

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL系列-InnoDB引擎01》MySQL体系结构和存储引擎

文章目录 第一章 MySQL体系结构和存储引擎1 数据库和实例2 MySQL配置文件3 MySQL数据库路径4 MySQL体系结构5 MySQL存储引擎5.1 InnoDB存储引擎5.2 MyISAM存储引擎5.3 NDB存储引擎5.4 Memory存储引擎5.5 Archive存储引擎5.6 Federated存储引擎 6 连接MySQL6.1 TCP/IP6.2 命名管…

数据统计的一些专业术语学习

数据统计的一些专业术语学习 1. 极差2. 方差3. 标准差4. 均值绝对差 1. 极差 数据统计的极差&#xff0c;又称全距&#xff0c;是指一组数据中最大值和最小值之差。 举个例子&#xff0c;如果我们有一组数据&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c…

Visual Transformer (ViT)模型详解

1 Vit简介 1.1 Vit的由来 ViT是2020年Google团队提出的将Transformer应用在图像分类的模型&#xff0c;虽然不是第一篇将transformer应用在视觉任务的论文&#xff0c;但是因为其模型“简单”且效果好&#xff0c;可扩展性强&#xff08;scalable&#xff0c;模型越大效果越好…

Windows系统历史版本简介详细版

学习目标&#xff1a; 目录 学习目标&#xff1a; 学习内容&#xff1a; 学习产出&#xff1a; Windows 11的全新用户界面设计&#xff1a;学习新的任务栏、开始菜单、窗口管理等界面元素的使用与操作。 Windows 11的新功能和特点&#xff1a;学习新的虚拟桌面、Microsoft Team…

07-2-接口文档管理工具-swagger注解使用__ev

swagger参考demo package com.example.swagger2.controller;import com.example.swagger2.exception.SwaggerException; import com.example.swagger2.model.User; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*;import java.util.Has…

多模态大模型的前世今生

1 引言 前段时间 ChatGPT 进行了一轮重大更新&#xff1a;多模态上线&#xff0c;能说话&#xff0c;会看图&#xff01;微软发了一篇长达 166 页的 GPT-4V 测评论文&#xff0c;一时间又带起了一阵多模态的热议&#xff0c;随后像是 LLaVA-1.5、CogVLM、MiniGPT-5 等研究工作…

HTTP协议编程实战(二)实战二

使用析构函数主要是在里面关闭套接字&#xff08;socket&#xff09;; waitForReadyRead()里面参数是毫秒&#xff0c;失败返回false; \r\n表示请求头部已经结束了&#xff0c;HTTP/1.1是版本号&#xff0c;200 ok表示请求响应成功 关闭的话就在前面加/

【阅读笔记】LoRAHub:Efficient Cross-Task Generalization via Dynamic LoRA Composition

一、论文信息 1 论文标题 LoRAHub&#xff1a;Efficient Cross-Task Generalization via Dynamic LoRA Composition 2 发表刊物 NIPS2023_WorkShop 3 作者团队 Sea AI Lab, Singapore 4 关键词 LLMs、LoRA 二、文章结构 #mermaid-svg-Gn81hPysu7z59nlv {font-family:&…

ARM CCA机密计算软件架构之内存加密上下文(MEC)

内存加密上下文(MEC) 内存加密上下文是与内存区域相关联的加密配置,由MMU分配。 MEC是Arm Realm Management Extension(RME)的扩展。RME系统架构要求对Realm、Secure和Root PAS进行加密。用于每个PAS的加密密钥、调整或加密上下文在该PAS内是全局的。例如,对于Realm PA…

LLM应用的分块策略

每日推荐一篇专注于解决实际问题的外文&#xff0c;精准翻译并深入解读其要点&#xff0c;助力读者培养实际问题解决和代码动手的能力。 欢迎关注公众号 原文标题&#xff1a;Chunking Strategies for LLM Applications 原文地址&#xff1a;https://www.pinecone.io/learn/c…

电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。

在数字化时代&#xff0c;采购管理也正经历着前所未有的变革。全过程数字化采购管理成为了企业追求高效、透明和规范的关键。该系统通过Spring Cloud、Spring Boot2、Mybatis等先进技术&#xff0c;打造了从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通过…

MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可. 数值函数 三角函数 指数与对数函数 进制间的转换函数 字符串函数 注:LPAD函数是右对齐,RPAD函数是左对齐 多表查询 注:如果为表起了别名,就…