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

基础算法——前缀和

由于比赛基本都是采用Dev-C++所以,算法篇基本都是采用Dev-C++来解释(版本5.11,c++11)
首先介绍一下前缀和算法

给定一个数组,有q次询问,每次询问:
两个整数l,r,求出数组 l 到 r的结果

遇到问题首先先来分析问题
上图:
在这里插入图片描述
第一种方法,相信大家都会写,所以我们现在来写第二种解法:
在这里插入图片描述
数学中的求和公式,我们可以将其变为:
在这里插入图片描述

那我们为什么要这么做呢?

例如:上面的数组 1 2 3 4 5
用这个公式可以得出 1 3 6 10 15
得出的东西是什么呢?
在这里插入图片描述
可见,每一项就等于自身的值,加上前面的所有项的值
那我们应该如何求区间中的值呢?
数组[r]-数组[l-1]
在这里插入图片描述
要求蓝色的值,我们就要用从数组开始一直到 r 的值减去数组开始一直到 l-1 的值。

证明一下,比如我们要求 l =2,r=5
上面我们已经求得了数组开始一直加到数组结尾,值为15,数组[l-1]的值为1
最终我们所得的值为 14.

下来我们写一下代码:

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e5+9;
void test()
{int lenth,q;cin>>lenth>>q;ll arr[N],perfix[N];for(int i=1;i<=lenth;i++){cin>>arr[i];}for(int i=1;i<=lenth;i++){perfix[i]=perfix[i-1]+arr[i];}while(q--){int l,r;cin>>l>>r;cout<<perfix[r]-perfix[l-1]<<'\n';}
}
int main()
{int T;cin>>T;while(T--){test();}return 0;
}

在这里插入图片描述
代码没有问题,这里有一点我想提一下,这里的代码,数组arr[0]是不存东西的,是为了方便后面前缀和,有的小伙伴代码风格不同,就是要从0开始,也是可以的
通过调试:
在这里插入图片描述
我们可以看到时这样存储的,我们题目中询问l=2 r=5并不是问下标,而是实打实元素的顺序,要解决这一问题,我们可以
在这里插入图片描述
将perfix[i]=perfix[i-1]+arr[i];改为现在这样这样就妥了

在这里插入图片描述
当然还有别的修改办法,这里就不一 一列举了。

相关文章:

基础算法——前缀和

由于比赛基本都是采用Dev-C所以&#xff0c;算法篇基本都是采用Dev-C来解释&#xff08;版本5.11&#xff0c;c11&#xff09; 首先介绍一下前缀和算法 给定一个数组&#xff0c;有q次询问&#xff0c;每次询问&#xff1a; 两个整数l,r&#xff0c;求出数组 l 到 r的结果 遇…...

spring实例化对象的几种方式(使用XML配置文件)

前言 Spring框架作为一个轻量级的控制反转&#xff08;IoC&#xff09;容器&#xff0c;为开发者提供了多种对象实例化的策略。通过这些策略&#xff0c;开发者可以更加灵活地控制对象的生命周期和依赖关系。无论是通过XML配置、注解配置还是Java配置&#xff0c;Spring都能…...

【二叉树】力扣 129.求根节点到叶子节点数字之和

一、题目 二、思路 每找到一个非空节点&#xff0c;之前路径上的所有节点的数量级都要增加1个单位。例如&#xff0c;当前节点为3&#xff0c;之前的节点路径为1 -> 2&#xff0c;presum 1 * 10 2 12&#xff0c;现在路径变为了 1 -> 2 -> 3&#xff0c;sum pres…...

深度学习物体检测之YOLOV5源码解读

V5比前面版本偏工程化,项目化,更贴合实战 一.V5版本项目配置 (1)整体项目概述 首先github直接查找yolov5&#xff0c;下载下来即可。在训练时&#xff0c;数据是怎么处理的&#xff1f;网络模型架构是怎么设计的(如各层的设计)&#xff1f;yolov5要求是大于python3.8与大于等…...

音频数据采样入门详解 - 给Python初学者的简单解释

音频数据采样入门详解 - 给Python初学者的简单解释 声音是如何变成数字的&#xff1f;什么是采样率&#xff1f;为什么要懂这个&#xff1f;Python小例子总结 大家好&#xff01;今天我们来聊一个有趣的话题&#xff1a;音频数据是如何在计算机中处理的。让我用最简单的方式来解…...

Unity类银河战士恶魔城学习总结(P179 Enemy Archer 弓箭手)

教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了敌人弓箭手的制作 Enemy_Archer.cs 核心功能 状态机管理敌人的行为 定义了多个状态对象&#xff08;如 idleState、moveState、attackState 等&#xff09;&#xff0c;通过状态机管理敌人的…...

SpringCloud集成sleuth和zipkin实现微服务链路追踪

文章目录 前言技术积累spring cloud sleuth介绍zipkin介绍Zipkin与Sleuth的协作 SpringCloud多模块搭建Zipkin Server部署docker pull 镜像启动zipkin server SpringCloud 接入 Sleuth 与 Zipkinpom引入依赖 (springboot2.6)appilication.yml配置修改增加测试链路代码 调用微服…...

Python随机抽取Excel数据并在处理后整合为一个文件

本文介绍基于Python语言&#xff0c;针对一个文件夹下大量的Excel表格文件&#xff0c;基于其中每一个文件&#xff0c;随机从其中选取一部分数据&#xff0c;并将全部文件中随机获取的数据合并为一个新的Excel表格文件的方法。 首先&#xff0c;我们来明确一下本文的具体需求。…...

Linux+Docker onlyoffice 启用 HTTPS 端口支持

文章目录 一、需求二、配置2.1 创建容器2.2 进入容器2.3 生成私钥和证书 2.4 测试访问 一、需求 上篇文章介绍了如何搭建一个 onlyoffice 在线预览服务&#xff0c;但是我们实际场景调用该服务的网站是协议是 https 的 &#xff0c;但是 onlyoffice 服务还没做配置&#xff0c…...

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c

在 Visual Studio Code 中编译、调试和执行 Makefile 工程 llama2.c 1. Installing the extension (在 Visual Studio Code 中安装插件)1.1. Extensions for Visual Studio Code1.2. C/C1.2.1. Pre-requisites 1.3. Makefile Tools 2. Configuring your project (配置项目)2.1.…...

python中math模块常用函数

文章目录 math模块简介各种三角函数反三角函数取整函数欧几里得距离绝对值最大公约数开根号幂阶乘函数 math模块简介 math模块是python标准库的一部分&#xff0c;提供了对于浮点数相关的数学运算&#xff0c;下面是常用的一些function 各种三角函数反三角函数 math.cos、ma…...

优化 Vue 3 开发体验:配置 Vite 使用 WebStorm 作为 Vue DevTools 的默认编辑器

优化 Vue 3 开发体验&#xff1a;配置 Vite 使用 WebStorm 替代 VS Code 作为 Vue DevTools 的默认编辑器 在 Vue 3 项目开发中&#xff0c;合理配置开发工具可以大大提升我们的工作效率。本文将介绍如何配置 Vite&#xff0c;使其在使用 Vue DevTools 时将默认编辑器从 VS Co…...

【C语言练习(9)—有一个正整数,求是几位数然后逆序打印】

C语言练习&#xff08;9&#xff09; 文章目录 C语言练习&#xff08;9&#xff09;前言题目题目解析结果总结 前言 主要到整数的取余(%)和整数的取商(/)&#xff0c;判断语句if…else if …else的使用 题目 给一个不多于3位的正整数&#xff0c;要求:一、求它是几位数&…...

热敏打印机的控制

首次接触热敏打印机&#xff0c;本来没有特别之处&#xff0c;花了大概十天时间完成一款猫学王热敏打印机&#xff0c;给到客户体验后&#xff0c;客户反馈说打字看起来不明显&#xff0c;打印照片有条纹&#xff0c;所以引起了我对于他的关注&#xff0c;几点不足之处需要优化…...

【closerAI ComfyUI】电商赋能,AI模特套图生产,各种姿势自定义,高度保持人物服饰场景一致性,摆拍街拍专用

closerAIGCcloserAI,一个深入探索前沿人工智能与AIGC领域的资讯平台,我们旨在让AIGC渗入我们的工作与生活中,让我们一起探索AIGC的无限可能性!aigc.douyoubuy.cn 【closerAI ComfyUI】电商赋能,AI模特套图生产,各种姿势自定义,高度保持人物服饰场景一致性,摆拍街拍专用…...

ARM学习(36)静态扫描规则学习以及工具使用

笔者来学习了解一下静态扫描以及其规则,并且亲身是实践一下对arm 架构的代码进行扫描。 1、静态扫描认识 静态扫描:对代码源文件按照一定的规则进行扫描,来发现一些潜在的问题或者风险,因为不涉及代码运行,所以其一般只是发现一些规范或则一些质量问题,当然这些可能存在潜…...

使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群

文章目录 使用 Docker Compose 部署 Redis 主从与 Sentinel 高可用集群Redis 主从架构简介Redis Sentinel 简介配置文件1. 主节点配置 (redis-master.conf)2. 从节点配置 (redis-slave1.conf 和 redis-slave2.conf)redis-slave1.confredis-slave2.conf3. Sentinel 配置 (sentin…...

警惕!手动调整服务器时间可能引发的系统灾难

警惕&#xff01;手动调整服务器时间可能引发的系统灾难 1. 鉴权机制1.1 基于时间戳的签名验证1.2 基于会话的认证机制&#xff08;JWT、TOTP&#xff09; 2. 雪花算法生成 ID 的影响2.1 时间戳回拨导致 ID 冲突2.2 ID 顺序被打乱 3. 日志记录与审计3.1 日志顺序错误3.2 审计日…...

MySQL追梦旅途之性能优化

1、索引优化 索引可以显著加速查询操作&#xff0c;但过多或不适当的索引也会带来负面影响&#xff08;如增加写入开销&#xff09;。因此&#xff0c;选择合适的索引至关重要。 创建索引&#xff1a; 为经常用于WHERE子句、JOIN条件和ORDER BY排序的列创建索引。 CREATE I…...

【机器学习】【无监督学习——聚类】从零开始掌握聚类分析:探索数据背后的隐藏模式与应用实例

从零开始掌握聚类分析&#xff1a;探索数据背后的隐藏模式与应用实例 基本概念聚类分类聚类算法的评价指标&#xff08;1&#xff09;内部指标轮廓系数&#xff08;Silhouette Coefficient&#xff09;DB指数&#xff08;Davies-Bouldin Index&#xff09;Dunn指数 &#xff08…...

OpenClaw错误排查大全:Phi-3-vision-128k-instruct对接常见问题

OpenClaw错误排查大全&#xff1a;Phi-3-vision-128k-instruct对接常见问题 1. 问题背景与准备工具 上周在尝试用OpenClaw对接Phi-3-vision-128k-instruct模型时&#xff0c;我遇到了各种稀奇古怪的问题。从连接超时到图片解析失败&#xff0c;整个过程就像在玩技术版的"…...

用VNA实测滤波器群时延:手把手教你避开IQ信号失真的坑(附校准技巧)

射频滤波器群时延实战&#xff1a;VNA测量技巧与IQ信号保真解决方案 在无线通信系统设计中&#xff0c;滤波器的群时延特性往往是被忽视的关键参数。许多工程师在评估滤波器性能时&#xff0c;主要关注插入损耗、带外抑制等传统指标&#xff0c;却忽略了群时延波动可能导致的信…...

机器学习04——numpy

1、numpy介绍Numpy&#xff08;Numerical Python&#xff09;是一个开源的Python科学计算库&#xff0c;用于快速处理任意维度的数组。Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务&#xff0c;使用Numpy比直接使用Python要简洁的多。Numpy使用ndarray对象来处理多维…...

车灯设计师必看:CATIA中FreeStyle模块的10个高效技巧

车灯设计师必看&#xff1a;CATIA中FreeStyle模块的10个高效技巧 在汽车照明系统的设计中&#xff0c;曲面造型的精度与美感直接决定了最终产品的市场竞争力。作为行业标准工具&#xff0c;CATIA的FreeStyle模块为车灯设计师提供了强大的自由曲面创建能力&#xff0c;但真正掌握…...

OpenClaw+百川2-13B-4bits:10分钟搭建学术资料收集机器人

OpenClaw百川2-13B-4bits&#xff1a;10分钟搭建学术资料收集机器人 1. 为什么需要学术资料收集机器人&#xff1f; 上周整理毕业论文参考文献时&#xff0c;我发现自己浪费了整整3个小时在重复操作上&#xff1a;在Google Scholar搜索关键词→逐一点开论文链接→手动判断相关…...

jcmd-jvm

jcmd 命令详解 什么是 jcmd jcmd 是 JDK 7 引入的一个命令行工具&#xff0c;用于向正在运行的 JVM 发送诊断命令。它是一个功能强大的工具&#xff0c;整合了之前多个 JVM 工具&#xff08;如 jstack、jinfo、jmap 等&#xff09;的功能&#xff0c;提供了统一的接口来管理和监…...

如何快速实现文件格式伪装?apate工具完整使用指南

如何快速实现文件格式伪装&#xff1f;apate工具完整使用指南 【免费下载链接】apate 简洁、快速地对文件进行格式伪装 项目地址: https://gitcode.com/gh_mirrors/apa/apate 在当今数字时代&#xff0c;文件格式伪装技术已经成为保护数据隐私和突破平台限制的重要工具。…...

LeetCode 二叉树高频双题绝杀!第 k 小元素 + 右视图,小白一遍学会

目录 前言 第一题&#xff1a;二叉搜索树中第 K 小的元素 &#x1f3af; 题目要求 &#x1f4a1; 小白秒懂核心思路 ✅ 完整解题代码 &#x1f4dd; 通俗代码解析 第二题&#xff1a;二叉树的右视图 &#x1f3af; 题目要求 &#x1f4a1; 小白秒懂核心思路 ✅ 完整解…...

网站设计:抓住这3点细节,用户体验感飙升!

网站制作要不要做得那么细呢&#xff1f;实际上&#xff0c;当我们发现很多网站制作得很优秀时&#xff0c;怎么看都不知道是如何做好的&#xff0c;但就是感觉不错&#xff0c;实际上这就体现在了制作网站细节上。很多时候设计网站往往容易忽视这三个细节&#xff1a;1、网页图…...

如何0失败部署ChemCrow?从环境配置到功能落地的全景指南

如何0失败部署ChemCrow&#xff1f;从环境配置到功能落地的全景指南 【免费下载链接】chemcrow-public Chemcrow 项目地址: https://gitcode.com/gh_mirrors/ch/chemcrow-public ChemCrow是一款基于Langchain构建的开源化学智能工具包&#xff0c;集成了RDKit化学工具、…...