算法——差分

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

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

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

描述

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

  1. 1.​ 区间修改:将 [l,r][l,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}(单点修改)。
相关推荐
若水不如远方3 分钟前
分布式一致性(六):拥抱可用性 —— 最终一致性与 Gossip 协议
分布式·后端·算法
计算机安禾6 分钟前
【C语言程序设计】第35篇:文件的打开、关闭与读写操作
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
Wect15 分钟前
React Hooks 核心原理
前端·算法·typescript
美式请加冰22 分钟前
字符串的介绍和使用
算法
m0_7336122128 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
仰泳的熊猫30 分钟前
题目2571:蓝桥杯2020年第十一届省赛真题-回文日期
数据结构·c++·算法·蓝桥杯
我喜欢就喜欢34 分钟前
基于离散余弦变换的感知哈希算法:原理、实现与工程实践
算法·哈希算法
2301_807367191 小时前
C++中的模板方法模式
开发语言·c++·算法
PhotonixBay1 小时前
共聚焦显微镜的结构组成与应用
人工智能·算法·机器学习
逆境不可逃1 小时前
LeetCode 热题 100 之 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 4. 寻找两个正序数组的中位数
java·开发语言·数据结构·算法·leetcode·职场和发展