算法——差分

前缀和与差分的核心思想是预处理,可以在暴力枚举的过程中,快速给出查询的结果,从而优化时间复杂度。是经典的用空间替换时间的做法。

学完差分之后,大家会发现,前缀和与差分是一对互逆的运算。

【模板】差分_牛客题霸_牛客网

描述

对于给定的长度为 nn 的数组 {a1,a2,...,an}{a1​,a2​,...,an​} ,你需要维护:

  1. 1.​ 区间修改:将 l,rl,r 这个区间中的全部元素增加 xx ;

在全部修改完成后,直接输出最终的数组。

输入描述:

第一行输入两个整数 n,q(1≦n,q≦5×105)n,q(1≦n,q≦5×105) 代表数组中的元素数量、操作次数。

第二行输入 nn 个整数 a1,a2,...,an(−107≦ai≦107)a1​,a2​,...,an​(−107≦ai​≦107) 代表初始数组。

此后 qq 行,每行输入三个整数 l,r,d(1≦l≦r≦n; −107≦d≦107)l,r,d(1≦l≦r≦n; −107≦d≦107) 代表一次修改。

输出描述:

在一行上输出 nn 个整数,代表最终的数组。

示例1

输入:

复制代码
6 2
1 1 4 5 1 4
1 6 -3
4 4 1

复制输出:

复制代码
-2 -2 1 3 -2 1

复制说明:

复制代码
对于第一次操作,数组变为 {−2,−2,1,2,−2,1}{−2,−2,1,2,−2,1}(全局修改);
对于第二次操作,数组变为 {−2,−2,1,3,−2,1}{−2,−2,1,3,−2,1}(单点修改)。
相关推荐
武子康8 小时前
驾驶轨迹换个坐标,就能给移动机器人用吗?
人工智能·算法·机器学习
lisw0514 小时前
Dayhoff的PAM替换矩阵理论评介!
线性代数·算法·矩阵
一起学安全技术15 小时前
拆大模型 03|注意力的一句话版本:不用论文讲清 Attention
深度学习·算法·语言模型·transformer
Delightrs16 小时前
Rust LeetCode238 算法题解
开发语言·算法·rust
自信1504130575916 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
GoAI1 天前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
Pniubi1 天前
力扣54.螺旋矩阵
算法·leetcode·矩阵
choumou_M1 天前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法