算法——差分

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

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

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

描述

对于给定的长度为 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}(单点修改)。
相关推荐
aaaameliaaa8 小时前
字符函数和字符串函数
c语言·笔记·算法
城管不管9 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯9 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡9 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯9 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang10 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One98510 小时前
高进度算法模板速记(待完善)
java·前端·算法
土豆.exe12 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江13 小时前
有限Abel群的结构()
算法
Jerry13 小时前
LeetCode 92. 反转链表 II
算法