题解 | #【模板】前缀和#
【模板】前缀和
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")