首页 > 其他分享 >前缀和

前缀和

时间:2023-05-12 21:23:23浏览次数:33  
标签:输出 前缀 10 int 询问 整数 输入

一、问题描述

输入一个长度为 n� 的整数序列。

接下来再输入 m� 个询问,每个询问输入一对 l,r�,�。

对于每个询问,输出原序列中从第 l� 个数到第 r� 个数的和。

输入格式

第一行包含两个整数 n� 和 m�。

第二行包含 n� 个整数,表示整数数列。

接下来 m� 行,每行包含两个整数 l� 和 r�,表示一个询问的区间范围。

输出格式

共 m� 行,每行输出一个询问的结果。

输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

输出样例:

3
6
10
解题思路:用一个数组a[N]来储存输入的数据,用另一个数组b[N]来储存a[N]对应的前i项和。(b[i]=从a[1]加到a[i]的和)
代码实现:
#include<iostream>
using namespace std;
const int N=1e6+10;
int a[N];
int b[N];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        b[i]=b[i-1]+a[i];
    }
    for(int i=0;i<m;i++)
    {
        int x,y;
        cin>>x>>y;
        cout<<b[y]-b[x-1]<<endl;
    }
    return 0;
}
View Code

 

标签:输出,前缀,10,int,询问,整数,输入
From: https://www.cnblogs.com/zk126/p/17396310.html

相关文章

  • 洛谷 P5488 差分与前缀和
    洛谷传送门看起来很毒瘤,但是推出贡献系数后就是一个朴素的卷积了。首先考虑前缀和。考虑\(j\(j\lei)\)的\(a_j\)贡献到\(i\)的过程,是找到\(j=p_0\lep_1\le\cdots\lep_k=i\)的方案数。令\(x_i=p_i-p_{i-1}\),即求\(x_i\ge0,\sum\limits_{i=1}^kx_i......
  • C语言刷leetcode——前缀和
    目录前缀和概述刷题560.和为K的子数组523.连续的子数组和974.和可被K整除的子数组前缀和概述https://zhuanlan.zhihu.com/p/436526162刷题560.和为K的子数组523.连续的子数组和974.和可被K整除的子数组......
  • 根据前缀生成指定范围内的MAC地址
    6进制递增,批处理一键生成指定范围的MAC地址可以经过适当的修改,实现10进制、二进制、8进制的类似效果使用方法:将以下代码复制后,保存为*.bat批处理文件即可执行;或者新建一个记事本文件,将复制的代码粘贴进去,然后将文件名后缀改为*.bat,双击即可执行;批处理内容:@echoofftitleMA......
  • 前缀和及其应用
    1.定义数组a=[1,2,3,4,5],我们维护一个由前缀的和组成的数组sum,sum[i]表示数组中a[0]~a[i]的和。sum[0]=a[0]sum[1]=a[0]+a[1]sum[2]=a[0]+a[1]+a[2]sum[3]=a[0]+a[1]+a[2]+a[3]sum数组就被称为前缀和数组。2.应用前缀和的最主要目的就是求子数组的......
  • 「模板」前缀和
    阿巴阿巴阿巴输入n个数,给出m个询问,询问区间[x,y]的和。输入第一行为n和m,1<=n,m<=100000接下来一行为n个数,范围在0~100000之间接下来m行,每行两个数x,y,输出第x个数到第y个数之间所有数的和。保证x<=y输出m个数tips:1#include<bits/stdc++.h>2usingnamespacestd;3......
  • 前缀和
    前缀和一、介绍前缀,顾名思义就是一个东西前面的点缀...(bushi其实打比方来说就是:假如有一字符串ABCD,那么他的前缀就是A、AB、ABC、ABCD这四个从新从第一个字母一次往后开始拼接的字符串。当然这是字符串。但前缀和一般应用于数组,对于给定的数组a=[1,2,3,4],他的前i项和sum[i]......
  • 判断网卡MAC地址前缀
    我们的电脑上现在可是很多的网卡,因为存在虚拟网卡,Lan口和wifi网卡等等。之前有人给出判断的前缀,但是不够完整。可以从这里下载完整的资料。1)先由GetAdaptersInfo获取所有网卡的基本信息。然后利用网卡名去注册表中查找对应的硬件信息。若是物理网卡,其硬件信息中通常会包含PCI。......
  • D. Remove One Element(前缀最大+简单状态机)
    题目D.RemoveOneElement题意输入n(2≤n≤2e5)和长为n的数组a(1≤a[i]≤1e9)。从a中去掉一个数(也可以不去掉)。输出a的最长严格递增连续子数组的长度。思路一种方法是前缀最长和后缀最长,加起来。这种方法比较简单。用状态机来写,定义f[i][0/1]分别表示前缀......
  • 名字修饰约定: extern "C"、extern "C++" 和__stdcall、__cdecl相关的约定、__imp_前
    关于extern_C通常,在C语言的头文件中经常可以看到类似下面这种形式的代码#ifdef__cplusplusextern"C"{#endif/****somedeclarationorso*****/#ifdef__cplusplus}#endif/*endof__cplusplus*/那么,这种写法什么用呢?实际上,这是为了让CPP能够与C......
  • 前缀索引
    前提前缀的标识度高比如我司系统记录的区块链交易哈希字段就适合建立前缀索引,因为密码几乎各不相同难度在于前缀截取的度实操我们可以利用下面的sql来确定截取的长度:selectcount(*)/count(distinctleft(tx_hash,preLen));通过从调整preLen的值(从1累加)查看不同前缀......