当前位置: 首页 > news >正文

C++算法——差分

1.差分

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

是经典的用空间替换时间的做法

补充:使得最短跳跃距离尽可能长,遇到类似这样的问题时,要往 二分、贪心、动态规划 这些算法上考虑

2.一维差分数组

前缀和与差分是⼀对互逆的运算,对差分数组做前缀和运算可以得到原数组。

给定一个数组,对这个数组中某段区间的元素多次进行同时加一个数的操作,如这类的问题,就可以使用差分数组的算法来解决。

模板题目;【模板】差分

进阶题目:P3406 海底高铁 - 洛谷

3.二维差分数组

作用:快速处理“将二维数组中,某一个子矩阵统一加上一个元素”的操作,可以达到O(1)的时间复杂度

性质:对差分矩阵进行前缀和运算后,能够还原出修改之后的原始矩阵。

3.1模板题目

【模板】二维差分

创建差分矩阵也很简单,在全局范围创建二维数组,此时数组每个值都是0,初始化原始矩阵时,每初始化一个元素,就相当于在这个范围中同时加上了一个k,此时差分矩阵进行对应的操作即可。


http://www.mrgr.cn/news/93754.html

相关文章:

  • [通讯协议]485通信
  • 每日一题——乘积最大子数组
  • <建模软件安装教程1>Blender4.2系列
  • 2024华为OD机试真题-找最小数(C++)-E卷B卷-100分
  • 13.C语言指针的易错点
  • html-列表标签和表单标签
  • 【从零开始学习计算机科学】计算机组成原理(四)指令系统
  • Python 实现图片提取文字
  • 发现U9查询设计上的一个逻辑
  • hadoop第3课(hdfs shell常用命令)
  • 数据治理的核心路线
  • 在Vue中 使用 Web Worker
  • ESP8266 WiFi 收发器入门(第 1 部分)
  • 强化学习和最优控制 - 知识图谱
  • Spring AI学习
  • MySQL复习笔记
  • CGI程序刷新共享内存视频流到HTTP
  • moodle 开源的在线学习管理系统(LMS)部署
  • Java学习--MySQL
  • 中级网络工程师面试题参考示例(1)