【深进1.例1】求区间和
查看原帖
【深进1.例1】求区间和
1121009
luoyiwen楼主2024/8/16 21:36

其实很简单,就是前缀和的模板

举个例子:

n=5;m=1;

a[]={1,2,3,4,5};

经处理过后:dp[]=1,3,6,10,15

l=2;r=4;

那么以此类推,推出dp[r]-dp[l]就是l到r的区间和,则代码如下:

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],dp[100005],m;//定义 
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i],dp[i]+=a[i]+dp[i-1];//输入并前缀和
	cin>>m;
	while(m--)
	{
		int l,r;
		cin>>l>>r;//输入区间
		cout<<dp[r]-dp[l-1]<<"\n";//公式代入
	}
	return 0;
}

2024/8/16 21:36
加载中...