前缀和【超详细讲解前缀和】
输入一个长度为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;}
前缀和【超详细讲解前缀和】相关推荐
- mybatis-plus超详细讲解
(6条消息) mybatis-plus超详细讲解_zdsg45的博客-CSDN博客_mybatis-plushttps://blog.csdn.net/zdsg45/article/details/1 ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- Python的零基础超详细讲解(第七天)-Python的数据的应用
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- Python的零基础超详细讲解(第五天)-Python的运算符
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上
Python高级编程--装饰器Decorator超详细讲解(上篇) 送你小心心记得关注我哦!! 进入正文 全文摘要 装饰器decorator,是python语言的重要特性,我们平时都会遇到,无论是面向 ...
- stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)
stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解) 首先看看效果吧 手机端发送一个数据在OLED屏幕上显示 其实蓝牙通信就是个蓝牙转串口的过程,手机 ...
- Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】
Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...
- react的超详细讲解
create-react-app 项目目录 在HTML中使用react 1 2 3基础 React的注意事项 模拟的React 和 render React组件 函数组件 类组件 React 的数据源 ...
最新文章
- MySQL高级 全表扫描更快
- clickhouse原理解析与应用实践_Hybrid App (混合应用) 技术全解析 方案原理篇
- ftp主要完成与远程计算机的连接,2015计算机三级《网络技术》复习重点:远程登录服务和FTP服务...
- Raspberry Pi 的新用法:检测家中的漏水情况
- mysql 组复制和传统复制_2017年12月聚合文章--MySQL 传统复制中常见故障处理和结构优化案例分析 | 码友网...
- Smuxi 0.8.10 发布 - IRC 客户端软件
- SSD源码解读之ssd_pascal.py
- python回文字符串编程_Python回文字符串及回文数字判定功能示例
- linux下的shell脚本(基础)
- 给华南x99打鸡血BIOS教程
- 小葵花妈妈课堂开课了:《AsyncTask源码分析》
- 打印机服务无法启动(如何解决打印机后台服务没有启动)
- 更改微信浏览器页面标题
- 在python中使用ggplot2
- linux内核看门狗关闭方法,详解linux 看门狗驱动编写
- Mac版Pycharm 2018 激活及汉化指南
- 人教版初中信息技术电子课本_电子课本|2020秋 部编人教版初中化学九年级上册教材电子课本(高清更新可打印)...
- python算法--物流最优路径
- JAVA命名规范(数据库 and 后端)
- ocr识别软件测试点,屏幕取词和OCR取词测试
热门文章
- 速度!天猫双11【自动养猫】教程来啦!领喵币瓜分更多红包!
- linux io多路复用详解,Linux系统中IO多路复用
- WPF学习第二集-XMAL概览
- 苹果春季发布会提前曝光:紫色iPhone 13 Pro冲上热搜,SE3将搭载A15芯片
- 姑苏樾|遇见古城里的宽居四室
- Win11和Ubuntu 20.04双系统配置+Ubuntu详细软件配置一遍过(Nvidia驱动、谷歌浏览器、Anaconda、Pycharm、qq、百度网盘等)
- JFinal 3.4 发布,将极速贯彻到 UI 层
- pikachu反射型xss(get、post)、储存型xss
- CC2530——lcd屏幕(ST7735S)
- 机器学习中常见分类器的应用场景