算法——差分

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

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

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

描述

对于给定的长度为 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}(单点修改)。
相关推荐
_Narcissus_几秒前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
世人万千丶33 分钟前
鸿蒙项目实战 - 社区活动编排板:标签云布局算法与自动换行
学习·算法·华为·harmonyos·鸿蒙
zander25836 分钟前
LeetCode 279. 完全平方数
算法·深度优先
典典分享指南1 小时前
VS Code Git 工作树:解锁多分支并行开发新体验
算法·决策树·逻辑回归·启发式算法
_Narcissus_2 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举
天疆说2 小时前
策略的进化:从随心所欲到稳健前行
算法
冻柠檬飞冰走茶2 小时前
《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x
开发语言·数据结构·c++·算法·list
冻柠檬飞冰走茶3 小时前
《数据结构实验指导-C++语言版》 返回单链表 list 中第 i 个元素值
开发语言·数据结构·c++·算法·list
happyprince3 小时前
03-深刻观-CodeX哲学与升华(源码)
算法·ai编程
不会打球的王子3 小时前
Day 27:迁移学习与微调 — 站在巨人的肩膀上
算法