【题目来源】:https://www.51nod.com
【题意&&思路】
求l到l+dis区间的和,咋一看,还以为是非线段树不可。。
转念一想,或许前缀和就可以了。。。
【代码】
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
LL arr[50000+10];
int main()
{
int n;
scanf("%d",&n);
arr[0]=0;
for(int i=1;i<=n;i++)
{
scanf("%lld",&arr[i]);
arr[i]+=arr[i-1];
}
int q;
scanf("%d",&q);
while(q--)
{
int l,dis;
scanf("%d%d",&l,&dis);
printf("%lld\n",arr[l+dis-1]-arr[l-1]);
}
}

本文介绍了一种使用前缀和的方法来高效解决区间和查询问题,避免了使用复杂的数据结构如线段树。通过实例演示了如何计算指定区间内的元素总和。
986

被折叠的 条评论
为什么被折叠?



