51nod1081---子段求和(51nod基础:前缀和)

【题目来源】:https://www.51nod.com
【题意&&思路】
求l到l+dis区间的和,咋一看,还以为是非线段树不可。。
转念一想,或许前缀和就可以了。。。
【代码】

#include
#include
#include
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]);
    }
}

你可能感兴趣的:(ACM竞赛,ACM的进程)