官方题解 | #【模板】前缀和#

【模板】前缀和

http://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf

【模板】前缀和

难度:2星

前缀和模板题。我们定义 sum[i]sum[i] 为前 ii 个数之和,可以通过预处理 O(n)O(n) 求出所有的 sum[i]sum[i],那么查询区间 [l,r][l,r] 中所有数之和只需要输出 sum[r]sum[l1]sum[r]-sum[l-1] 即可,每次查询的复杂度为 O(1)O(1)

#include<bits/stdc++.h>
using namespace std;
int a[101010];
long long sum[101010];
int main(){
    int n,q,i;
    cin>>n>>q;
    for(i=1;i<=n;i++)cin>>a[i],sum[i]=sum[i-1]+a[i];
    while(q--){
        int l,r;
        cin>>l>>r;
        cout<<sum[r]-sum[l-1]<<endl;
    }
}
全部评论

相关推荐

野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客企业服务