一维前缀和
题目 前缀和
思路分析
以1位置开始 以满足s[l]为s[0]的情况
(从1开始还是从0开始 取决于有没有用到i-1这个位置)
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n';
const int N=100010;
int a[N],s[N]; //其实就是等差数列
int n,m;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>m;
//a[0]、s[0]默认会赋上0 这样的话求x-0的情况也能这样用 能少判断边界情况
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
s[i]=s[i-1]+a[i];
while(m--){
int l,r;
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;
}
return 0;
}
同类题型
视频讲解
📹 配套视频讲解:一维前缀和(acwing 视频课,原网址 Trilium 导出时未保留,待回填)
💬 评论