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

普通算法——一维前缀和

一维前缀和

题目链接:https://www.acwing.com/problem/content/797/

题目描述:

  1. 输入一个长度为 n 的整数序列。
  2. 接下来再输入 m 个询问,每个询问输入一对 l,r
  3. 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。

**什么是前缀和?**简单来说就是前 i 个数据的求和

在这里插入图片描述

前缀和有什么作用?

  • 快速求某个区间中所有元素的加和。
  • 例 S4 = a1 + a2 + a3 + a4; S1 = a1。所以可以通过 S4-S1 得到 a2+a3+a4 的值。
    在这里插入图片描述

前缀和核心代码:

const int N = 1e5+10;
int sum[N], a[N]; //sum[i] = a[1] + a[2] + a[3] ..... a[i];
for(int i = 1; i <= n;i++)
{ 
    sum[i] = sum[i - 1] + a[i];   
}
#include<iostream>
using namespace std;
const int N = 100010;
int n, m, a[N], sum[N], l, r;

int main(){
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		sum[i] = sum[i - 1] + a[i];
	}
	while(m--){
		cin >> l >> r;
		cout << sum[r] - sum[l - 1] << endl;
	}
	return 0;
}

总结:
在这里插入图片描述


http://www.kler.cn/a/428808.html

相关文章:

  • Vscode:问题解决办法 及 Tips 总结
  • Ubuntu 22.04.5 修改IP
  • go语言zero框架通过chromedp实现网页在线截图的设计与功能实现
  • 自定义BeanPostProcessor实现自动注入标注了特定注解的Bean
  • 新星杯-ESP32智能硬件开发--ESP32的I/O组成-系统中断矩阵
  • 【线性代数】行列式的概念
  • k8s-Informer概要解析(2)
  • Mybatis-plus 多租户插件
  • 如何使用Apache HttpClient来执行GET、POST、PUT和DELETE请求
  • 【JAVA】Java高级:数据库监控与调优:SQL调优与执行计划的分析
  • MySQL(四)--索引
  • QNX系统的编译过程
  • 【uniapp】swiper切换时,v-for重新渲染页面导致文字在视觉上的拉扯问题
  • 40分钟学 Go 语言高并发:【实战】分布式缓存系统
  • Go学习:变量
  • 重生之我在21世纪学C++—关系、条件、逻辑操作符
  • 第三部分:进阶概念 7.数组与对象 --[JavaScript 新手村:开启编程之旅的第一步]
  • 猜数字的趣味小游戏——rand函数、srand函数、time函数的使用
  • 深入探索汽车CMSF功能:工作原理与应用场景详解
  • 基于触觉感知的目标识别技术在智能机器人抓取中的应用综述
  • 项目实现:C++与SQL整合
  • burp(8)-ip伪造及爬虫审计
  • 计算机毕设-基于springboot的实践性教学系统设计与实现(附源码+lw+ppt+开题报告)
  • 证明网络中的流形成一个凸集
  • ETCD的封装和测试
  • 【Python】练习【24-12-8】