真·最完整的题解
2022-12-04 11:24:31
发布于:江苏
60阅读
0回复
0点赞
首先,输入一次扫一次数组肯定不行,会TLE
因此,用前缀和数组一减就行
#include <iostream>
using namespace std;
	long long x[100005]= {};
	long long s[100005]= {};
	long long n,m;
int main()
{
	cin>>n>>m;
	for (int i=1; i<=n; i++)   //避免s[i-1]=-1
	{
		cin>>x[i];
		s[i]=s[i-1]+x[i];  //预处理前缀和
	}
	while (m--){
		int l,r;
		cin>>l>>r;
		cout<<s[r]-s[l-1]<<endl; //直接求答案
	}
	return 0;
}
这里空空如也

有帮助,赞一个