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

【模板】前缀和

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

#include <iostream>
#include<vector>
using namespace std;

int main() {
 int  n=0,q=0;
  cin>>n>>q;
  vector<int> arr(n,0);
  for(auto&e:arr)
  {
    cin>>e;
  }
  vector<vector<int>> vv(q,vector<int>(2));
  for(auto&e:vv)
  {
    cin>>e[0]>>e[1];
  }
  //初始化前缀和数组
  vector<long long> dp(n+1); //使用long long 避免存储不进去
  dp[0]=0;
  for(int i=1;i<=arr.size();i++)
  {
     dp[i]=dp[i-1]+arr[i-1];
  }
  //使用前缀和数组
  for(int i=0;i<vv.size();i++)
  {
     cout<<dp[vv[i][1]]-dp[vv[i][0]-1]<<endl;
  }
  return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务