输入一个长度为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

这一题就是最纯粹的前缀和问题。
我们就利用这一题来好好的唠一唠前缀和。

首先,我们根据下图先了解一下什么是前缀和。

所以我们得知,前缀和就是从位置1到位置i这个区间内的所有的数字之和。


既然我们明白了前缀和是怎么回事,那我们就来看一下我们该怎么输入
先给出答案,然后再给出分析。
答案:

for (int i = 1; i <= n; i ++ ){cin >> a[i];s[i] = s[i - 1] + a[i];
}

我们通过这副图来理解一下为什么这么写代码就可以得到前缀和


到现在,我们已经解决了输入问题和前缀和的问题,下面就是我们如何利用前缀和的时候了。
我们用前缀和有一个很大的优势,就是可以快速的得到某一个区间的区间总和

前缀和的优势:以(o1)的时间复杂度得到某块区间的总和

好,我们先来看一下怎么求一个区间的和
我们用 L 和 R 分别表示区间的左右端点,
那么

好,前缀的内容就这么多啦
下面奉上我的代码

#include <iostream>using namespace std;const int N = 100010;int n, m;
int a[N], s[N];int main(){cin >> n >> m;for (int i = 1; i <= n; i ++ ) cin >> a[i], s[i] = s[i - 1] + a[i];while (m -- ){int l, r;cin >> l >> r;cout << s[r] - s[l - 1] << endl;}return 0;}

前缀和【超详细讲解前缀和】相关推荐

  1. mybatis-plus超详细讲解

    (6条消息) mybatis-plus超详细讲解_zdsg45的博客-CSDN博客_mybatis-plushttps://blog.csdn.net/zdsg45/article/details/1 ...

  2. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  3. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  4. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  5. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  6. python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上

    Python高级编程--装饰器Decorator超详细讲解(上篇) 送你小心心记得关注我哦!! 进入正文 全文摘要 装饰器decorator,是python语言的重要特性,我们平时都会遇到,无论是面向 ...

  7. stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)

    stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解) 首先看看效果吧 手机端发送一个数据在OLED屏幕上显示 其实蓝牙通信就是个蓝牙转串口的过程,手机 ...

  8. Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】

    Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...

  9. react的超详细讲解

    create-react-app 项目目录 在HTML中使用react 1 2 3基础 React的注意事项 模拟的React 和 render React组件 函数组件 类组件 React 的数据源 ...

最新文章

  1. MySQL高级 全表扫描更快
  2. clickhouse原理解析与应用实践_Hybrid App (混合应用) 技术全解析 方案原理篇
  3. ftp主要完成与远程计算机的连接,2015计算机三级《网络技术》复习重点:远程登录服务和FTP服务...
  4. Raspberry Pi 的新用法:检测家中的漏水情况
  5. mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
  6. Smuxi 0.8.10 发布 - IRC 客户端软件
  7. SSD源码解读之ssd_pascal.py
  8. python回文字符串编程_Python回文字符串及回文数字判定功能示例
  9. linux下的shell脚本(基础)
  10. 给华南x99打鸡血BIOS教程
  11. 小葵花妈妈课堂开课了:《AsyncTask源码分析》
  12. 打印机服务无法启动(如何解决打印机后台服务没有启动)
  13. 更改微信浏览器页面标题
  14. 在python中使用ggplot2
  15. linux内核看门狗关闭方法,详解linux 看门狗驱动编写
  16. Mac版Pycharm 2018 激活及汉化指南
  17. 人教版初中信息技术电子课本_电子课本|2020秋 部编人教版初中化学九年级上册教材电子课本(高清更新可打印)...
  18. python算法--物流最优路径
  19. JAVA命名规范(数据库 and 后端)
  20. ocr识别软件测试点,屏幕取词和OCR取词测试

热门文章

  1. 速度!天猫双11【自动养猫】教程来啦!领喵币瓜分更多红包!
  2. linux io多路复用详解,Linux系统中IO多路复用
  3. WPF学习第二集-XMAL概览
  4. 苹果春季发布会提前曝光:紫色iPhone 13 Pro冲上热搜,SE3将搭载A15芯片
  5. 姑苏樾|遇见古城里的宽居四室
  6. Win11和Ubuntu 20.04双系统配置+Ubuntu详细软件配置一遍过(Nvidia驱动、谷歌浏览器、Anaconda、Pycharm、qq、百度网盘等)
  7. JFinal 3.4 发布,将极速贯彻到 UI 层
  8. pikachu反射型xss(get、post)、储存型xss
  9. CC2530——lcd屏幕(ST7735S)
  10. 机器学习中常见分类器的应用场景