在做题中学习(55):一维前缀和模板

【模板】前缀和_牛客题霸_牛客网 (nowcoder.com)

题目解释:

注意:下标从1开始的。

l 和 r就是对这n个整数去取一个区间,例如示例一:

(1,2) 区间 就是算出1 2 4 中 1,2下标对应值的和,1+2 = 3

同理,(2,3)   ->    2 + 4 = 6

解法:前缀和


用来快速求出一段连续区间的和。

做法:

1.来一个dp数组(每个元素都是从[1,i] 位置元素的和):

求法:       dp[i] = dp[i-1] + nums[i]

2.使用前缀和dp

既然要求(l,r) 区间的和,而dp数组已经有dp[r] 和dp[l-1]这一段的值了,所以dp[r] - dp[l-1]就可以算出(l,r)区间的值。 

细节

为什么数组下标要从 1 开始

因为如果说题目的 l 是可以 = 0的,那么求[0,2]   就是dp[2] - dp[-1]了,而下标怎么能为负数呢,所以此时需要单独处理判断,而下标从1开始的话,l最小 = 1 [1,2],就是  dp[2] - dp[0] 了,此时只需要让dp[0] = 0就可以了。

#include <iostream>
#include <vector>
using namespace std;int main() 
{//1.把值输入到原始数组int n = 0,q = 0;cin >> n >> q;vector<int> arr(n+1);for(int i = 1;i<=n;i++)cin >> arr[i];//2.构建dp数组vector<long long int> dp(n+1);for(int i = 1;i<=n;i++)dp[i] = dp[i-1] + arr[i];//3.使用dp数组int l = 0,r = 0;while(q--){cin >> l >> r;cout << dp[r] - dp[l-1] <<endl;}
}

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

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

相关文章

Nginx配置项详解

Nginx&#xff0c;以其高性能、稳定性强、资源消耗低的特性&#xff0c;成为众多网站和应用首选的Web服务器及反向代理服务器。其配置文件的灵活性和丰富性是其强大功能的关键所在。本文将深入解析Nginx配置文件中的核心概念与关键配置项&#xff0c;帮助您更好地理解和定制Ngi…

springboot2.x集成Elasticsearch7.7.0

一、前言 elasticsearch安装就不做过多介绍了&#xff0c;网上一搜一大堆&#xff1b;最需要注意的就是Elasticsearch与spring版本&#xff0c;防止版本不兼容导致的后续的一系列问题。我这里springbootspring-data-elasticsearch&#xff0c;他们的版本对照关系可以参照sprin…

vue2后台管理项目

一:项目准备 1)拉取模板代码 远程仓库复制到本地仓库. 2)安装后的项目 路径 code 文件夹 会打开vscode的文件夹. 3)安装vetur和eslint插件可以保存时自动修改不规范的地方. 4)App内有一级路由,路由组件导入如果是layout架子,会导入的是文件夹下的index.js没有则导入index.v…

智能电视遇险?海信、TCL、小米“上下求索”

众所周知&#xff0c;智能化已经成为各行各业的发展新方向&#xff0c;家电行业更是早早掀起了智能化浪潮&#xff0c;越来越多的智能家电产品涌现出来。在客厅场景&#xff0c;电视毫无疑问是众多家电中的C位&#xff0c;而在智能化浪潮的助推下&#xff0c;电视这一产品同样开…

有什么实用的还原试卷的app免费?6个软件教你快速进行还原试卷

有什么实用的还原试卷的app免费&#xff1f;6个软件教你快速进行还原试卷 在现代化的教学环境中&#xff0c;使用数字化工具进行试卷还原变得愈发重要。以下是六个实用的、免费的应用程序&#xff0c;它们为还原试卷提供了便捷的解决方案。 FunAI&#xff1a; 这款应用程序可…

SD-WAN提升Microsoft 365用户体验

随着数字化时代的到来&#xff0c;SaaS应用如Microsoft 365已经成为各类企业的主流选择。在这一趋势下&#xff0c;企业需要以更加灵活、高效的方式使用Microsoft 365&#xff0c;以满足日益增长的业务需求。而传统的网络基础设施可能无法满足这一需求&#xff0c;因此&#xf…

指针的奥秘(三):数组指针+函数指针(+typedef)+函数数组指针+转移表

指针 一.数组指针1.数组指针变量是什么&#xff1f;2.指针数组和数组指针区别和口诀3.数组指针变量怎么初始化4.二维数组传参的本质 二.函数指针1.函数指针变量的创建2.函数指针变量的使用3.两段有趣的代码1.( *( void ( * )( ) )0 ) ( );2.void( *signle(int, void( * )(int) …

TCP协议的确认应答机制

TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层协议&#xff0c;它在网络通信中扮演着至关重要的角色。其中&#xff0c;确认应答机制是TCP协议中的一个核心概念&#xff0c;它确保了数据的可靠传输。本文将详细介绍J…

LeetCode hot100-34-G

23. 合并 K 个升序链表请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。这题没做出来 其实有个很自然的想法应该想到的&#xff0c;也就是官方解法一 两个升序链表合并这个应该会。多个的困难就是没办法分别用指针指向每个链表头&#xff0c;然后比较大小。其…

【QA】Java集合常用的函数

文章目录 前言Collection接口通用函数 | Collections工具类通用函数 | List接口 Set接口List接口ArrayListLinkedList Set接口TreeSetHashSetLinkedHashSet Map接口通用函数TreeMapHashMapLinkedHashMap 前言 本文介绍Java集合中常用的函数。 Collection接口 通用函数 | Co…

js设计模式--发布订阅者模式

概述 发布订阅者模式用于处理对象之间的事件通信&#xff0c;该模式涉及两个主要角色&#xff1a;发布者&#xff08;Publisher&#xff09;和订阅者&#xff08;Subscriber&#xff09; 发布者维护一个事件列表&#xff0c;并在事件发生时通知所有已注册的订阅者。订阅者可以…

数据结构解构方法

遇到问题后端返回data{其中对应每一个item的checked和descrip} { "code": 200, "msg": "请求成功", "time": , "data": { "id": "", "measureFileDesc": n…

【C++风云录】拓展视野:C++工具库在可穿戴技术中的应用分析

创新引擎&#xff1a;如何运用C工具库推动生物医学工程进步 前言 本文将介绍和讨论六种在生物医学工程和可穿戴技术中应用广泛的开源C库。这些库包括OpenBCI&#xff0c;PyCortex&#xff0c;TensorFlow&#xff0c;Dlib&#xff0c;Armadillo和Boost&#xff0c;它们在脑机接…

WP All Import Pro插件下载 - 一键导入,无限可能

在当今快节奏的数字时代&#xff0c;网站内容的更新和管理是每个网站管理员和开发者的日常工作。但是&#xff0c;传统的手动更新方法不仅耗时&#xff0c;而且容易出错。现在&#xff0c;有了WP All Import Pro&#xff0c;这一切都将改变。 WP All Import Pro 是一款专为Wor…

C#连接MySql数据库 (ASP.NET API)

main方法调用连接 using System; using MySql.Data.MySqlClient; class Program { static void Main(string[] args) { string connectionString "serverlocalhost;database***;username***;password****"; using (MySqlConnection connec…

ABAP ZCL_EXCEL 实际用的案例 对账单

ABAP ZCL_EXCEL 实际用的案例 FORM GETITEMSANDOUTPUT USING PGS_HEAD TYPE GSHEAD.DATA:FILENAME TYPE STRING.DATA:LKUNNR TYPE KNA1-KUNNR.DATA:PROW TYPE I.DATA:LSDATE TYPE STRING.DATA:SUMXSJE TYPE DMBTR,ZYMYE TYPE DMBTR, "月末余额SUMBYXSYE TYPE DMBT…

全新神经网络架构KAN——本文用于学习与探索

论文地址&#xff1a;https://arxiv.org/pdf/2404.19756 Github&#xff1a;GitHub - KindXiaoming/pykan: Kolmogorov Arnold Networks 文档说明&#xff1a;Welcome to Kolmogorov Arnold Network (KAN) documentation! — Kolmogorov Arnold Network documentation 本文仅…

Java 反射动态代理

反射 Java反射是一种强大的编程机制&#xff0c;它允许程序在运行时检查或修改对象和类的行为。具体来说&#xff0c;反射机制提供了以下功能&#xff1a; 类的动态加载&#xff1a;可以在运行时加载一个只知道名称的类&#xff0c;并创建该类的实例。获取类的详细信息&#…

二手交易系统基于Uniapp+FastAdmin+ThinkPHP(源码搭建/上线/运营/售后/更新)

​一款基于UniappFastAdminThinkPHP开发的二手交易系统&#xff0c;卖家可以发布二手信息&#xff0c;买家可以在线询价&#xff0c;支持在线聊天(高级授权)&#xff0c;在线购买支付&#xff0c;支持发布高价回收(高级授权)信息。自带社交板块&#xff0c;用户可以发布帖子、加…

Prompt|Kimi高阶技巧,99%的人都不知道

大家好&#xff0c;我是无界生长。 今天分享一条咒语&#xff0c;轻松让Kimi帮你生成流程图&#xff0c;学会了的话&#xff0c;点赞收藏起来吧&#xff01; 效果展示 我们演示一下让kimi帮忙绘制 关注微信公众号“无界生长”的流程图&#xff0c;最终效果图如下所示 效果还不…