zoukankan      html  css  js  c++  java
  • AcWing 795.前缀和

    AcWing 795.前缀和

    题目描述

    输入一个长度为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开始存储;
    s[i]存储的就为a[1]至a[i]的和;
    求l至r即为s[r]-s[l-1].

    #include<iostream>
    using namespace std;
    
    const int N = 1e5+10;
    int a[N],s[N];
    
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        for(int i=1;i<=n;i++) s[i] = s[i-1] + a[i];
        int l,r;
        while(m--)
        {
            scanf("%d%d",&l,&r);
            printf("%d
    ",s[r]-s[l-1]);
        }
        return 0;
    }
    
  • 相关阅读:
    第一个java程序和注释
    hadoop map端join
    hadoop wordcount入门
    hadoop reduce端联结
    hadoop streaming的使用
    HDU5752 Sqrt Bo
    L2-008 manacher 的应用
    L3-001 凑零钱
    L2-001 紧急救援
    如何在ubuntu下安装go开发环境
  • 原文地址:https://www.cnblogs.com/fsh001/p/12245055.html
Copyright © 2011-2022 走看看