洛谷P8218 【深进1.例1】求区间和 题解

P8218 【深进1.例1】求区间和 题解

题目

题目传送门

题解

思路

这题是一道一维前缀和模板题,使用数组\(s\)作为前缀和数组,\(s_i\)表示数值数组\(a\)\(a_1\)\(a_i\)的所有数值的和。求数组\(a\)中第\(l\)项到第\(r\)项的区间和就可以用\(s_r-s_{l-1}\)求出(即减去重复部分)。

代码

#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x7fffffff
#define EPS 1e-8
using namespace std;
int n,m,l,r,a[100005],q[100005];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		q[i]=q[i-1]+a[i];
	}
	cin>>m;
	while(m--){
		cin>>l>>r;
		cout<<q[r]-q[l-1]<<endl;
	}
	return 0;
}
posted @ 2025-02-09 16:21  2789617221guo  阅读(114)  评论(0)    收藏  举报