news 2026/5/20 12:05:25

每日算法练习Day04

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
每日算法练习Day04

B3612 【深进1.例1】求区间和

题目来源:https://www.luogu.com.cn/problem/B3612#ide

题目描述

给定nnn个正整数组成的数列a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1,a2,,anmmm个区间[li,ri][l_i,r_i][li,ri],分别求这mmm个区间的区间和。

输入格式

第一行包含一个正整数nnn,表示序列的长度。

第二行包含nnn个正整数a1,a2,⋯ ,ana_1,a_2, \cdots ,a_na1,a2,,an

第三行包含一个正整数mmm,表示区间的数量。

接下来mmm行,每行包含两个正整数li,ril_i,r_ili,ri,满足1≤li≤ri≤n1\le l_i\le r_i\le n1lirin

输出格式

mmm行,其中第iii行包含一个正整数,表示第iii组答案的询问。

输入输出样例 #1

输入 #1

4 4 3 2 1 2 1 4 2 3

输出 #1

10 5

说明/提示

样例解释

111到第444个数加起来和为101010。第222个数到第333个数加起来和为555

数据范围

对于50%50 \%50%的数据:n,m≤1000n,m\le 1000n,m1000

对于100%100 \%100%的数据:1≤n,m≤1051 \le n, m\le 10^51n,m1051≤ai≤1041 \le a_i\le 10^41ai104

题解

importjava.util.Scanner;// 1. 导入扫描器类,用于读取控制台输入publicclassMain{// 2. 定义主类,Java程序入口,类名需和文件名一致publicstaticvoidmain(String[]args){// 3. 主方法,程序执行的入口Scannersc=newScanner(System.in);// 4. 创建Scanner对象,关联控制台输入流intn=sc.nextInt();// 5. 读取第一个整数n:表示原数组的元素个数// 6. 定义原数组a和前缀和数组s,长度n+1(索引0闲置,1~n存数据,和C++1-based索引一致)int[]a=newint[n+1];int[]s=newint[n+1];// 7. 循环读取n个元素,构建原数组a + 前缀和数组s(核心预处理)for(inti=1;i<=n;i++){a[i]=sc.nextInt();// 8. 读取第i个整数,存入原数组a的第i位s[i]=s[i-1]+a[i];// 9. 前缀和核心公式:s[i] = 前i个元素的累加和}intm=sc.nextInt();// 10. 读取整数m:表示后续的区间和查询次数// 11. 循环处理m次查询,每次O(1)时间出结果for(inti=1;i<=m;i++){intl=sc.nextInt();// 12. 读取查询的左边界lintr=sc.nextInt();// 13. 读取查询的右边界r// 14. 区间和核心计算:[l,r]的和 = 前r项和 - 前l-1项和,直接打印结果System.out.println(s[r]-s[l-1]);}sc.close();// 15. 关闭Scanner,释放输入流资源}}

这个是关于前缀和的问题,先设置好前缀和的数组,然后通过for循环来得到每一个前缀和,得到一个前缀和数组。
然后读取输入的l和r,通过循环可以获得多组l和r的相减的结果。然后输出就可以了。
要注意到边界条件,l不能小于1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 15:05:58

好写作AI:环境科学跨尺度数据论文的AI综合写作模式

从分子到全球&#xff1a;环境科学论文的数据整合之困 在环境科学研究中&#xff0c;一个核心挑战是如何将不同时空尺度、不同类型的数据整合为一套逻辑自洽、有说服力的学术论证。从实验室的微观污染物检测&#xff0c;到河流流域的中观生态评估&#xff0c;再到全球气候模型…

作者头像 李华
网站建设 2026/5/19 22:26:49

(7-3-02)电机与执行器系统:驱动器开发与控制接口(2)实时通信总线设计+33自由度人形机器人的双信道EtherCAT主设备架构

7.3.3 实时通信总线设计实时通信总线是人形机器人“中央控制器-多关节执行器”的核心数据传输链路&#xff0c;其核心功能是实现控制指令的高速下发与执行器状态数据的实时上传&#xff0c;保障多关节协同运动的同步性与精准性。针对人形机器人20~30个关节的分布式控制需求&am…

作者头像 李华
网站建设 2026/5/20 13:51:23

【概念板块和行业板块】

这是一个关于股票市场概念板块和行业板块的核心区别与联系的详细解释。 核心区别一句话概括&#xff1a; 行业板块&#xff1a;按公司主营业务是什么来划分&#xff0c;是“现在做什么”。 概念板块&#xff1a;按公司涉及什么热门题材、主题或技术来划分&#xff0c;是“未…

作者头像 李华
网站建设 2026/5/20 23:45:32

4.2 Istio架构核心组件:Pilot、Citadel、Galley三大组件详解

4.2 Istio架构核心组件:Pilot、Citadel、Galley三大组件详解 引言 Istio的控制平面由Pilot、Citadel、Galley三大核心组件组成。理解这些组件的功能和工作原理,是掌握Istio的关键。本文将详细解析这三个组件的架构和功能。 一、Pilot组件 1.1 Pilot的作用 服务发现 流量管…

作者头像 李华
网站建设 2026/5/20 13:51:24

4.4 Envoy代理深度解析:理解Istio数据平面的实现机制

4.4 Envoy代理深度解析:理解Istio数据平面的实现机制 引言 Envoy是Istio数据平面的核心,作为Sidecar代理处理所有服务间通信。深入理解Envoy的工作原理,有助于更好地使用和优化Istio。本文将详细解析Envoy的架构和功能。 一、Envoy概述 1.1 Envoy的作用 服务间代理 流量…

作者头像 李华
网站建设 2026/5/20 13:51:28

Gitee本土化实践:打造中国开发者生态的技术基座

Gitee本土化实践&#xff1a;打造中国开发者生态的技术基座 在数字中国建设加速推进的背景下&#xff0c;本土化技术平台正在成为支撑企业数字化转型的关键基础设施。作为国内代码托管领域的先行者&#xff0c;Gitee通过深度优化产品体验、强化安全合规能力和构建开源生态三大维…

作者头像 李华