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

795. 前缀和(acwing)

文章目录

  • 795.前缀和
    • 题目描述
    • 前缀和

795.前缀和

题目描述

输入一个长度为n的整数序列。

接下来再输入m个询问,每个询问输入一对l, r。

对于每个询问,输出原序列中从第l个数到第r个数的和。

输入格式
第一行包含两个整数n和m。

第二行包含n个整数,表示整数数列。

接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。

输出格式

共m行,每行输出一个询问的结果。

数据范围
1≤l≤r≤n,
1≤n,m≤100000,
-1000≤数列中元素的值≤1000

输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

输出样例:

3
6
10

前缀和

这段代码是用来解决前缀和问题的,用于快速计算区间内所有数的和。下面是详细注释:

#include<bits/stdc++.h> // 包含大部分常用的库
using namespace std;
const int z=100010; // 定义常量z为100010,作为数组大小的上限int a[z],s[z]; // a是输入的数列,s是前缀和数组int main() {int n,m,i; // n是数列的长度,m是查询的次数,i是循环变量scanf("%d %d",&n,&m); // 读入n和mfor(i=1;i<=n;i++)scanf("%d",&a[i]); // 读入数列,存入a数组for(i=1;i<=n;i++)s[i]=s[i-1]+a[i]; // 计算前缀和,s[i]存的是a[1]到a[i]的和while(m--) // 循环m次,对每个查询进行处理{int l,r;scanf("%d %d",&l,&r); // 读入查询的区间[l, r]printf("%d\n",s[r]-s[l-1]); // 输出区间和,即s[r]减去s[l-1]的值}return 0;
}

这段代码的核心是前缀和的概念。前缀和是一个非常有用的工具,特别是当我们需要频繁地查询某个区间内的元素和时。

前缀和数组s是这样定义的:s[i]表示从a[1]到a[i]的元素和。这意味着,为了得到任意区间[l,r]的和,我们可以用s[r](包含从a[1]到a[r]的所有元素的和)减去s[l-1](包含从a[1]到a[l-1]的所有元素的和)。这样就可以在O(1)的时间内得到任意区间的和,而不必每次询问都遍历整个区间,这在处理大量数据时非常有效率。

注意:本代码中的数组从索引1开始,而不是通常的从索引0开始,因此当计算前缀和时,s[0]默认为0。这也是为什么在计算区间和时使用s[r]-s[l-1]而不是s[r]-s[l]。如果l为1,s[l-1]为s[0],表示没有元素的和,即为0。

相关文章:

795. 前缀和(acwing)

文章目录 795.前缀和题目描述前缀和 795.前缀和 题目描述 输入一个长度为n的整数序列。 接下来再输入m个询问&#xff0c;每个询问输入一对l, r。 对于每个询问&#xff0c;输出原序列中从第l个数到第r个数的和。 输入格式 第一行包含两个整数n和m。 第二行包含n个整数&a…...

1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数

1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 这是教程中的一个函数&#xff0c;通过汇编来实现的。注释部分以及结合后面的讲解部分&#xff0c;可能还是有一点点细节的地方让初学者疑惑。我结合我自己的理解…...

图论练习5

Going Home Here 解题思路 模板 二分图最优匹配&#xff0c;前提是有完美匹配&#xff08;即存在一一配对&#xff09;左右集合分别有顶标&#xff0c;当时&#xff0c;为有效边&#xff0c;即选中初始对于左集合每个点&#xff0c;选择其连边中最优的&#xff0c;然后对于每…...

[C++] Volatile 和常量Const优化

Volatile的作用 volatile 表明某个变量的值可能在外部被改变&#xff0c;因此对这些变量的存取不能缓存到寄存器&#xff0c;每次使用时需要重新存取。 Const 和 Volatile的示例 示例1 int main() {const int a 1;int* pa const_cast<int*>(&a);*pa 4;cout &l…...

嵌入式学习day32 网络

htons()&#xff1b;//host to network short 将端口号转换为网络通信中的大端存储 eg:htons(50000); ntohs()&#xff1b;//host to network short 将大端存储转换为主机端口号 inet_addr();将IP地址转换为二进制 eg:inet_addr(192.168.1.170)&#xff1b; inet_ntoa()…...

算法D33 | 贪心算法3 | 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 本题简单一些&#xff0c;估计大家不用想着贪心 &#xff0c;用自己直觉也会有思路。 代码随想录 Python: class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:nums.sort(keylambda x: abs(x), reverseT…...

html地铁跑酷

下面是一个简单的HTML代码来展示一个地铁跑酷游戏&#xff1a; <!DOCTYPE html> <html> <head><title>地铁跑酷</title><style>#player {position: absolute;top: 0;left: 0;width: 50px;height: 50px;background-color: red;}</style…...

利用GPT开发应用001:GPT基础知识及LLM发展

文章目录 一、惊艳的GPT二、大语言模型LLMs三、自然语言处理NLP四、大语言模型LLM发展 一、惊艳的GPT 想象一下&#xff0c;您可以与计算机的交流速度与与朋友交流一样快。那会是什么样子&#xff1f;您可以创建哪些应用程序&#xff1f;这正是OpenAI正在助力构建的世界&#x…...

Golang Ants 构建协程池

构建的协程池实现两个目标&#xff1a; 1、限制协程池里开启的协程数量 2、当任务数大于协程数时&#xff0c;一个协程可以同时处理多个任务 3、监控是哪个协程ID处理了具体的任务 package mainimport ("fmt""runtime""strconv""string…...

【金三银四】面试题汇总(持续编写中)

Java八股文面试题汇总&#xff08;持续编写中~&#xff09; Java基础集合JUCJVM 数据库MySQLRedis 框架篇SSMSpringBoot 数据结构与算法数据结构与算法--汇总篇27道基础算法题&#xff0c;学完让你对算法有豁然开朗的感觉&#xff08;推荐小白&#xff09; 消息中间件RabbitMQK…...

Hive的数据存储

Hive的数据存储在HDFS的&#xff1a;/user/hive/warehouse中 The /user folder in HDFS is a directory typically used to store user-specific data and configurations. It serves as the home directory for Hadoop users, analogous to the /home directory in Unix-like …...

ORACLE 如何使用dblink实现跨库访问

dbLink是简称&#xff0c;全称是databaselink。database link是定义一个数据库到另一个数据库的路径的对象&#xff0c;database link允许你查询远程表及执行远程程序。在任何分布式环境里&#xff0c;database都是必要的。另外要注意的是database link是单向的连接。在创建dat…...

Sentinel 面试题及答案整理,最新面试题

Sentinel的流量控制规则有哪些&#xff0c;各自的作用是什么&#xff1f; Sentinel的流量控制规则主要包括以下几种&#xff1a; 1、QPS&#xff08;每秒查询量&#xff09;限流&#xff1a; 限制资源每秒的请求次数&#xff0c;适用于控制高频访问。 2、线程数限流&#xf…...

Qt在windows编译hiredis依赖库

目录 0 前言1 Qt安装遇到的问题2 hiredis源码下载2.0 redis源码下载2.1 hiredis源码下载2.2 编译hiredis源码2.3 遇到的问题列表参考资料0 前言 当前参与的项目需要用Qt对redis进行操作,以前没玩过这块,顺手记下笔记梳理起来~ 1 Qt安装 安装版本下载:https://download.qt…...

【工作向】protobuf编译生成pb.cc和pb.py文件

序言 首先通过protoc --version查看protoc版本&#xff0c;避免pb文件生成方和使用方版本不一致 1. 生成pb.cc 生成命令 protoc -I${proto_file_dir} --cpp_out${pb_file_dir} *.proto参数&#xff1a; -I表示 proto 文件的路径&#xff1b; --cpp_out 表示输出路径&#xff…...

android 快速实现 垂直SeekBar(VerticalSeekBar)

1.话不多说上源码&#xff1a; package com.example.widget;import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent;/*** Class to create a vertical slider*/ public class VerticalSeekBar…...

算法刷题day23:双指针

目录 引言概念一、牛的学术圈I二、最长连续不重复序列三、数组元素的目标和四、判断子序列五、日志统计六、统计子矩阵 引言 关于这个双指针算法&#xff0c;主要是用来处理枚举子区间的事&#xff0c;时间复杂度从 O ( N 2 ) O(N^2) O(N2) 降为 O ( N ) O(N) O(N) &#xf…...

学术论文GPT的源码解读与二次开发:从ChatPaper到gpt_academic

前言 本文的前两个部分最早是属于此旧文的《学术论文GPT的源码解读与微调&#xff1a;从ChatPaper到七月论文审稿GPT第1版》&#xff0c;但为了每一篇文章各自的内容更好的呈现&#xff0c;于是我今天做了以下三个改动 原来属于mamba第五部分的「Mamba近似工作之线性Transfor…...

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南&#xff1a;表达式&#xff08;上&#xff09;》中&#xff0c;我们已经介绍了表达式中的表达式编辑器、引用报告对象、使用 .Net 函数、数据元素参考这四部分&#xff0c;接下来让我们继续介绍表达式中的&#xff1a;引用数据…...

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…...

MCP2518FD屏蔽寄存器自动配置算法(11bit标准帧多ID接收场景)

1. 为什么需要自动配置屏蔽寄存器&#xff1f; 在CAN总线通信中&#xff0c;MCP2518FD作为一款常用的CAN控制器&#xff0c;经常需要处理多ID接收的场景。想象一下你正在开发一个汽车电子控制单元(ECU)&#xff0c;需要同时接收来自发动机、变速箱、ABS等多个模块的数据。每个…...

别再只写学生管理系统了!这个C++飞机订票项目能给你的简历加分(含GitHub源码)

用C飞机订票系统项目点亮你的技术简历 在众多求职者中脱颖而出并非易事&#xff0c;尤其是当大多数候选人都拥有相似的学历背景和技能清单时。作为一名C开发者&#xff0c;你是否厌倦了在简历上反复列出"学生管理系统"这类基础项目&#xff1f;让我们聊聊如何通过一…...

毕业设计实战:基于SpringBoot的网购平台管理系统设计与实现全攻略

毕业设计实战&#xff1a;基于SpringBoot的网购平台管理系统设计与实现全攻略 在开发“基于SpringBoot的网购平台管理系统”毕业设计时&#xff0c;曾因“订单状态与库存管理脱节”踩过关键坑——初期未设计清晰的订单状态机和库存联动机制&#xff0c;导致用户下单后库存未及时…...

SD2.0时钟与时序:从基础模式到高速传输的实战解析

1. SD2.0时钟与时序基础入门 第一次接触SD2.0规范时&#xff0c;我也被那些密密麻麻的时序参数搞得头晕眼花。直到在项目里实际调试SD卡读写失败的问题后&#xff0c;才发现理解时钟和时序的配合有多重要。简单来说&#xff0c;时钟就像两个人对话的节奏&#xff0c;而时序则是…...

别再手动合并代码了!用Docker Compose 5分钟搞定Gitea私有Git服务器(附PostgreSQL配置)

5分钟极速搭建Gitea私有Git服务&#xff1a;Docker Compose与PostgreSQL黄金组合 还在用网盘同步代码&#xff1f;或是把项目文件夹压缩后通过聊天软件传来传去&#xff1f;作为经历过这些"原始管理方式"的开发者&#xff0c;我完全理解手动合并冲突时的崩溃感——上…...

NRBO - Transformer - BiLSTM回归:Matlab实现的数据预测魔法

NRBO-Transformer-BiLSTM回归 Matlab代码 基于牛顿拉夫逊优化算法优化Transformer结合双向长短期记忆神经网络(BiLSTM)的数据回归预测(可以更换为分类/单、多变量时序预测/回归&#xff0c;前私我)&#xff0c;Matlab代码&#xff0c;可直接运行&#xff0c;适合小白新手 程序已…...

基于北方苍鹰优化算法优化径向基函数神经网络(NGO - RBF)的时间序列预测

基于北方苍鹰优化算法优化径向基函数神经网络(NGO-RBF)的时间序列预测 NGO-RBF时间序列 优化参数为扩散速度&#xff0c;采用交叉验证防止过拟合 matlab代码注&#xff1a;暂无Matlab版本要求 -- 推荐 2018B 版本及以上在时间序列预测领域&#xff0c;寻找高效准确的模型一直是…...

如何通过铜钟音乐重拾纯粹听歌的乐趣:一个零干扰的Web音乐解决方案

如何通过铜钟音乐重拾纯粹听歌的乐趣&#xff1a;一个零干扰的Web音乐解决方案 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/G…...

Jumper T16 Pro 高频头固件升级全攻略:从BootLoader检测到安全刷机避坑

Jumper T16 Pro 高频头固件升级全攻略&#xff1a;从BootLoader检测到安全刷机避坑 对于无人机和穿越机爱好者来说&#xff0c;Jumper T16 Pro遥控器无疑是一款功能强大的设备。它的多协议高频头支持让玩家能够兼容各种接收机&#xff0c;但要想充分发挥其性能&#xff0c;保持…...

清华团队发布机器人版“GPT时刻”:UniDex让机械手看懂世界,零样本操控万物!

80%成功率&#xff0c;碾压式超越现有方案&#xff0c;灵巧手操控迎来“GPT”时刻这篇论文用一种极其优雅且强大的方式&#xff0c;解决了机器人领域一个长期存在的根本性难题&#xff1a;如何让形态各异、复杂无比的灵巧手&#xff0c;像人类一样&#xff0c;看一眼就能学会使…...