题解 | #【模板】前缀和#
【模板】前缀和
https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf
#include <iostream> #include <vector> using namespace std; int main() { int n, q; cin >> n >> q; vector<int> arr(n+1); for(int i=1;i<=n;i++) cin>>arr[i]; /* 一个动态规划,下标0到l之间的数是0到r和重复,减去前面的值就是l到r之间的值。 类型注意区间范围,防止溢出 */ vector<long long > dp(n + 1); for(int i=1;i<=n;i++) { dp[i]=dp[i-1]+arr[i]; } int l=0,r=0; for(int i=0;i<q;i++) { cin>>l>>r; cout<<dp[r]-dp[l-1]<<endl; } }