--- title: "一维前缀和" created: 2025-11-28 tags: - 算法 --- # 一维前缀和 ## 题目 [前缀和](https://www.acwing.com/problem/content/797/) ![[image-f299d581.png]] ## 思路分析 ![[image-18809357.png]] 以1位置开始 以满足s[l]为s[0]的情况 (从1开始还是从0开始 取决于有没有用到i-1这个位置) ## 代码实现 ```cpp #include 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<