news 2026/4/16 14:49:15

算法——前缀和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法——前缀和

前缀和与差分的核心思想是预处理,可以在暴力枚举的过程中,快速给出查询的结果,从而优化时间复杂度。是经典的用空间替换时间的做法。

一、一维前缀和

快速求出数组中,某一段区间的和

1.先预处理出一个前缀和数组

①f [ i ] 表示:区间 [ 1 ,i ] 中所有元素的和

②计算公式:f [ i ] = f [ i - 1 ] + a [ i ]

2.利用前缀和数组

f [ l , r ] = f [ r ] - f [ l - 1 ]

【模板】静态区间和(前缀和)_牛客题霸_牛客网

描述

对于给定的长度为 nn 的数组 {a1,a2,…,an}{a1​,a2​,…,an​} ,你需要构建一个能够维护区间和信息的数据结构,使得其能支持:
∙ ∙ 区间和查询:输出 [l,r][l,r] 这个区间中的元素之和,即 ∑i=lrai∑i=lr​ai​ 。

输入描述:

第一行输入两个整数 n,q(1≦n,q≦106)n,q(1≦n,q≦106) 代表数组中的元素数量、操作次数。
第二行输入 nn 个整数 a1,a2,…,an(−109≦ai≦109)a1​,a2​,…,an​(−109≦ai​≦109) 代表初始数组。
此后 qq 行,每行输入两个整数 l,r(1≦l≦r≦n)l,r(1≦l≦r≦n) 代表区间和查询。

输出描述:

对于每一次询问,输出一行一个整数代表区间和。

示例1

输入:

3 2 1 2 4 1 2 2 3

输出:

3 6
#include <iostream> using namespace std; typedef long long LL; LL arr[1000000]; LL f[1000000];//前缀和数组 int main() { LL n,q; cin>>n>>q; int i=0; for(i=1;i<=n;i++) cin>>arr[i]; //处理前缀和数组 for(i=1;i<=n;i++) f[i]=f[i-1]+arr[i]; //处理q次询问 while(q--) { LL left,right; cin>>left>>right; cout<<f[right]-f[left-1]<<endl; } return 0; }

P1115 最大子段和 - 洛谷

题目描述

给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。

输入格式

第一行是一个整数,表示序列的长度 n。

第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai​。

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1复制

7 2 -4 3 -1 2 -4 3

输出 #1复制

4

说明/提示

样例 1 解释

选取 [3,5] 子段 {3,−1,2},其和为 4。

数据规模与约定
  • 对于 40% 的数据,保证 n≤2×103。
  • 对于 100% 的数据,保证 1≤n≤2×105,−104≤ai​≤104。
#include<iostream> using namespace std; typedef long long LL; const int N = 2e5 + 10; LL arr[N]; LL f[N]; int main() { LL n = 0; cin >> n; LL i = 0; for (i = 1;i <= n;i++) cin >> arr[i]; for (i = 1;i <= n;i++) f[i] = f[i - 1] + arr[i]; LL max_sum = f[1]; LL minPrev = 0; for (i = 1;i <= n;i++) { max_sum = max(max_sum, f[i] - minPrev); minPrev = min(minPrev, f[i]); } cout << max_sum; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 19:50:37

亲测好用8个AI论文平台,本科生轻松搞定毕业论文!

亲测好用8个AI论文平台&#xff0c;本科生轻松搞定毕业论文&#xff01; AI 工具如何成为论文写作的得力助手 随着人工智能技术的不断进步&#xff0c;越来越多的本科生开始借助 AI 工具来辅助自己的毕业论文写作。这些工具不仅能够帮助学生高效完成论文的初稿、大纲搭建&#…

作者头像 李华
网站建设 2026/4/9 21:23:36

数字永生计划争议不断?Sonic立场声明

Sonic&#xff1a;轻量级数字人背后的口型同步革新 在短视频日更、直播永不掉线的时代&#xff0c;内容生产正面临一场效率革命。一个典型场景是&#xff1a;某电商团队需要为上百款商品制作带货视频&#xff0c;若依赖真人出镜&#xff0c;从脚本、拍摄到剪辑&#xff0c;每人…

作者头像 李华
网站建设 2026/4/15 12:06:00

基于SpringBoot的智慧养老系统的设计与实现毕设

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。 一、研究目的 本研究旨在设计并实现一个基于SpringBoot框架的智慧养老系统&#xff0c;以满足我国老龄化社会背景下对养老服务的需求。具体研究目的如下&#xff1a; 提高…

作者头像 李华
网站建设 2026/4/16 12:47:08

Sonic数字人应用场景全解析:政务、电商、教育都能用

Sonic数字人应用场景全解析&#xff1a;政务、电商、教育都能用 在短视频内容爆炸式增长的今天&#xff0c;企业与机构对高质量视频内容的需求呈指数级上升。然而&#xff0c;真人拍摄受限于人力成本、时间周期和出镜人员协调难度&#xff0c;难以满足高频更新的要求。与此同时…

作者头像 李华
网站建设 2026/4/16 12:46:55

英文RAP也能对得上?Sonic节奏感获赞

英文RAP也能对得上&#xff1f;Sonic节奏感获赞 在短视频内容爆炸式增长的今天&#xff0c;创作者们越来越依赖高效、低成本的数字人技术来批量生产高质量视频。然而&#xff0c;传统方案往往需要复杂的3D建模、昂贵的动作捕捉设备和专业动画师参与&#xff0c;周期长、门槛高&…

作者头像 李华
网站建设 2026/4/13 8:40:25

《创业之路》-793-人是成本还是资本,不取决于这个人花多少钱,而是取决于花出去的钱,预计获取回报的时间周期,有的的当下计算在当下生产的产品中,成为了成本,有点是计算在未来的战略方向的产品中,称为资本

&#x1f331; 人是成本&#xff0c;还是资本&#xff1f;——取决于“预期回报周期”与“资源配置逻辑”“一个人值多少钱”不是问题的关键&#xff0c; 真正的问题是&#xff1a;我们把他当作短期消耗品&#xff0c;还是长期成长体&#xff1f;✅ 核心观点&#xff1a;人本身…

作者头像 李华