首页 > 编程语言 >差分算法

差分算法

时间:2024-01-31 18:23:34浏览次数:23  
标签:前缀 差分 算法 数组 区间 我们

差分算法

差分算法可以用来维护区间的加减

我们假定有一个数组 \(a={1,2,3,4}\)

\(b\) 为数组 \(a\) 的差分数组。

\[b_i=\begin{cases} a_i - a_{i-1}&i \in [2,n]\\ a_1 & i=1 \end{cases} \]

根据给定的数组 \(a={1,2,3,4}\) 我们很容易得知数组 \(b={1,1,1,1}\)

我们求数组 \(b\) 的前缀和数组,我们发现:

\[sum_b={1,2,3,4} \]

\[a={1,2,3,4} \]

数组 \(b\) 的前缀和数组和原数组 \(a\) 一样,我们再举个例子:

\[a={1,2,2,4} \]

\[b={1,1,0,2} \]

\[sum_b={1,2,2,4} \]

我们搞清楚这个性质之后我们再回到原问题,维护区间和加减。

假定,我们要让区间 \([L,R]\) 的值整体加 \(k\) , 我们让 \(b[L] + k\) , 再让 \(b[R+1] - k\) 再求前缀和就可以得到增加后的原数组 \(a\) 了。

用刚才的例子:

\[a={1,2,2,4} \]

\[b={1,1,0,2} \]

我们让区间 \([2,3]\) 加 \(1\) (下表从 \(1\) 开始)

\(b[L]+1\) 得: \(b={1,2,0,2}\)

如果在这个时候求前缀和:

\(a={1,3,3,5}\)

我们发现区间 \([2,4]\) 都加上了 \(1\) ,不符合预期

所以,我们还要进行下一步操作:

\(b[R+1]-1\) 得: \(b={1,2,0,1}\)

再求前缀和:

\(a={1,3,3,4}\)

我们发现区间 \([2,3]\) 加上了 \(1\) ,符合预期

这样一来,我们就知道了如何用差分维护区间和加减

一般来说,如果有 \(q\) 个操作,那么我们可以现在差分数组 \(b\) 上操作 \(q\) 次,再统一求前缀和,这样就可以做到 \(O(n)\) 修改了。

标签:前缀,差分,算法,数组,区间,我们
From: https://www.cnblogs.com/SCAtlas-lxy23/p/17999869

相关文章

  • TSINGSEE青犀智能分析网关V4如何利用AI智能算法保障安全生产、监管,掀开安全管理新篇章
    旭帆科技的智能分析网关V4内含近40种智能分析算法,包括人体、车辆、消防、环境卫生、异常检测等等,在消防安全、生产安全、行为检测等场景应用十分广泛。如常见的智慧工地、智慧校园、智慧景区、智慧城管等等,还支持抓拍、记录、告警、语音对讲、平台级联等功能。算法稳定。识别高效,......
  • 【算法】枚举
    枚举枚举的思想是不断地猜测,从可能的集合中一一尝试,然后再判断题目的条件是否成立。但是并非所有的情况都要枚举,有时要适当的进行一些剪枝。(如枚举\(a+b=c\)且\(b>a\)的个数那么\(b\)要从\(a+1\)开始枚举)。通常来说,我们可以限定枚举的范围让它的复杂度更高。虽......
  • 基于文本环境下的强化学习算法:文本游戏环境下的强化学习的一些思考?文本比图像的抽象度
    这里说一个个人的思考,那就是:文本比图像的抽象度更高,或许基于文本的强化学习算法更加强大。基于文本环境的强化学习算法一直被认为是比较小众的一个场景,一般认为文本的AI处理能力是不如图片的,尤其文本对事物描述的能力是十分有限的,但是随着ChatGPT-3.5的大火,或许这个状况得到了......
  • 【算法】斯坦纳树
    参考资料OI-Wiki:斯坦纳树T_a_r_j_a_n:[图论]-------斯坦纳树编程客:集合枚举子集-学习笔记概念斯坦纳树原本是在一个几何图中提出来的问题。在一个平面内给出\(n\)个点\(p_i\),可以加入一些新的点(称为斯坦纳点),要求在使得这些点连通并且边的总长度最小。在OI中,斯坦......
  • 算法模板 v1.6.1.20240131
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • MD5算法:高效安全的数据完整性保障
    摘要:在数字世界中,确保数据完整性和安全性至关重要。消息摘要算法就是一种用于实现这一目标的常用技术。其中,MessageDigestAlgorithm5(MD5)算法因其高效性和安全性而受到广泛关注。本文将详细介绍MD5算法的优缺点,以及它如何解决数据完整性问题和安全性问题。此外,我们还将提供......
  • 深入浅出堆排序: 高效算法背后的原理与性能
    ......
  • 快速排序:高效分割与递归,排序领域的王者算法
    ......
  • 读论文-基于自注意力机制和迁移学习的跨领域推荐算法
    前言今日要读的文章为一篇2022年4月2日发表于《计算机科学》的期刊文章;文章发现了传统的单领域推荐算法的问题:传统的单领域推荐算法受限于用户和项目的稀疏关系,存在用户/项目冷启动的问题,并且,其仅以用户对项目评分进行建模,忽略了评论文本中所蕴含的信息。基于此,文章提出了一种基......
  • LLM面面观之RLHF平替算法DPO
    1.背景最近本qiang~老看到一些关于大语言模型的DPO、RLHF算法,但都有些云里雾里,因此静下心来收集资料、研读论文,并执行了下开源代码,以便加深印象。此文是本qiang~针对大语言模型的DPO算法的整理,包括原理、流程及部分源码。2.DPOvsRLHF  上图左边是RLHF算法,右边为DPO算......