洛谷B3612 【深进1.例1】求区间和

题目描述

给定 n 个正整数组成的数列 a1​,a2​,⋯,an​ 和 m 个区间 li​,ri​,分别求这 m 个区间的区间和。

输入格式

第一行,为一个正整数 n 。

第二行,为 n 个正整数 a1​,a2​,⋯,an​

第三行,为一个正整数 m 。

接下来 m 行,每行为两个正整数 li​,ri​ ,满足 1≤li​≤ri​≤n

输出格式

共 m 行。

第 i 行为第 i 组答案的询问。

输入输出样例

输入 #1

复制代码
4
4 3 2 1
2
1 4
2 3

输出 #1

复制代码
10
5

说明/提示

样例解释:第 1 到第 4 个数加起来和为 10。第 2 个数到第 3 个数加起来和为 5。

对于 50% 的数据:n,m≤1000 ;

对于 100% 的数据:1≤n,m≤,1≤ai​≤

暴力只能得40%,要用前缀和优化

cpp 复制代码
#include<iostream>
using namespace std;

int n, m;
const int N = 1e5+10;
int a[N];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
	for(int i=1; i<=n; ++i)
	{
		cin>>a[i];
		a[i] += a[i-1];  //前缀和 
	}
	cin>>m;
	
	while(m--)
	{
		int r, l;
		cin>>r>>l;
		
		int ans = 0;
		ans = a[l]-a[r-1];
		cout<<ans<<'\n';
	}
	
	return 0;
}
相关推荐
王老师青少年编程3 天前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维差分】:[NOIP 2018 提高组] 铺设道路
c++·前缀和·差分·csp·高频考点·信奥赛·铺设道路
王老师青少年编程11 天前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:求区间和
c++·前缀和·csp·高频考点·信奥赛·求和区间和
王老师青少年编程13 天前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:“非常男女”计划
c++·前缀和·csp·高频考点·信奥赛·“非常男女”计划
王老师青少年编程14 天前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:宝石串
c++·前缀和·csp·高频考点·信奥赛·宝石串
闻缺陷则喜何志丹23 天前
【动态规划 前缀和】P7074 [CSP-J2020] 方格取数|普及+
c++·算法·前缀和·动态规划·洛谷
拳里剑气1 个月前
C++算法:前缀和
开发语言·c++·算法·前缀和
Zzzzmo_1 个月前
前缀和算法
算法·前缀和
Q741_1471 个月前
每日一题 力扣 2615.等值距离和 哈希表 前缀和 C++ 题解
c++·算法·leetcode·前缀和·哈希表
闻缺陷则喜何志丹1 个月前
【ST表 前缀和】P7809 [JRKSJ R2] 01 序列|普及+
c++·算法·前缀和·洛谷·st表
Fcy6482 个月前
算法基础详解(三)前缀和与差分算法
算法·前缀和·差分