【C++算法】1.【模板】前缀和

1.DP34 一维前缀和

2.题目描述:

3.解法(前缀和):

算法思路:

a.先预处理一个前缀和数组:

用sumi表示:1,i区间内所有元素的和,那么sumi-1里面存的就是1,i-1区间内所有元素的和。那么可得递推公式sumi=sumi-1+arri。l-1

b.使用前缀和数组快速求出某个区间内元素的和:当询问l,r时:区间内所有元素的和为sumr-suml-1

4.代码
cpp 复制代码
#include <iostream>
#include <ostream>
#include <vector>
using namespace std;

int main()
{
    //1.读入数据
    int n,q;
    cin>>n>>q;
    vector<int> arr(n+1);
    for(int i=1;i<=n;i++) cin>>arr[i];
    //2.预处理
    vector<long long> dp(n+1);//防止溢出
    for(int i=1;i<=n;i++) dp[i]=dp[i-1]+arr[i];
    //3.使用前缀和数组
    int l=0,r=0;
    while(q--)
    {
        cin>>l>>r;
        cout<<dp[r]-dp[l-1]<<endl;
    }


    return 0;
}
相关推荐
华华哥2022几秒前
《模型不玄学》第5章 看懂你的数据:先认字段,再过门禁
算法
国科安芯3 分钟前
低轨卫星姿轨控系统中抗辐射MCU的选型依据与工程实践
单片机·嵌入式硬件·算法·架构·系统安全·低轨卫星·抗辐射
奈斯先生Vector5 分钟前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
高亦真9 分钟前
今天是学习嵌入式的第33天
linux·学习·算法
OPEN-F9 分钟前
C++17新特性精讲:结构化绑定、if constexpr与实用类型
开发语言·c++
CoderYanger10 分钟前
A.每日一题:3345. 最小可整除数位乘积 I
java·数据结构·程序人生·算法·leetcode·面试·学习方法
带多刺的玫瑰11 分钟前
Leecode#16刷题之最接近的三数之和
数据结构·算法
OPEN-F12 分钟前
C++并发编程:线程与互斥锁
开发语言·c++
俊昭喜喜里14 分钟前
C#中的decimal
开发语言·c#
码匠许师傅15 分钟前
【设计模式精讲】11.桥接模式(Bridge)
c++·设计模式·桥接模式·uml