首页 > 其他分享 >差分

差分

时间:2023-03-08 19:55:38浏览次数:53  
标签:单点 复杂度 差分 查询 修改 数组

差分

差分是前缀和的逆运算。

 

       利用差分数组D [ ]可以把O ( n ) 的区间修改,变成O ( 1 ) 的端点修改,从而提高了修改操作的效率。
  但是,一次查询操作,即查询某个a [ i ] ,需要用D [ ]计算整个原数组a [ ],计算量是O ( n ) 的,即一次查询的复杂度是O ( n )的。在上面的例题中,如果查询不是发生了一次,而是这样:有m次修改,有k次查询,且修改和查询的顺序是随机的。此时总复杂度是:m次修改复杂度O ( m ),k次查询复杂度O ( k n ) ,总复杂度O ( m + k n ) 。还不如直接用暴力法,总复杂度O ( m n + k )。
  这种题型是“区间修改 + 单点查询”,用差分数组往往不够用。因为差分数组对“区间修改”很高效,但是对“单点查询”并不高效。此时需要用树状数组和线段树来求解。
  树状数组常常结合差分数组来解决更复杂的问题,差分数组也常用于“树上差分”。

 

标签:单点,复杂度,差分,查询,修改,数组
From: https://www.cnblogs.com/dnf-gay/p/17145495.html

相关文章

  • 算法笔记之前缀和与差分
    什么是前缀和定义前缀和(PrefixSum):对于一个给定的数列\(a\),它的前缀和数列\(sum\)是通过递推能求出来得\(sum_i=\sum_{j=1}^{i}a_j\)部分和。也就是指某一序列......
  • 算法基础1.4.2差分
    前言学习差分前一定要先学习前缀和,因为差分就是前缀和的一个逆运算(有点像微分和积分),所以只有先搞清楚前缀和才能明白差分点这里补习前缀和这里同样也是从一维和二维两个......
  • 3729. 改变数组元素(差分)
    https://www.acwing.com/problem/content/3732/一维差分,要点是题目给的v数组一开始为空的,可以认为v数组一开始全为0,有n个0(因为加入了n个数),要满足题意得用循环模拟不......
  • 差分约束算法
    \[\begin{cases}x_{c_1}-x_{c'_1}\leqy_1\\x_{c_2}-x_{c'_2}\leqy_2\\\cdots\\x_{c_m}-x_{c'_m}\leqy_m\end{cases}\]转化为最短距离:对于任意的一个不等式\(x......
  • 【发电优化】基于差分算法求解单库发电优化问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 798. 差分矩阵
    二维差分模板题https://www.acwing.com/problem/content/800/同一维差分一样的思想,重要的也是时刻保证a[i]=b[0]+b[1]+...+b[i]在二维则是:a[i][j]=b[0][0]+b[0][1]+...b[......
  • 797. 差分
    https://www.acwing.com/problem/content/799/差分模板题差分就是前缀和的逆运算,重要的时刻确保a[i]=b[0]+b[1]+.....+b[i],这是差分的规定关键是构造b数组,可以在输入数......
  • 正交实验与极差分析
    正交试验极差分析流程如下图:正交试验说明正交试验是研究多因素试验的设计方法。对于多因素、多水平的实验要求,如果每个因素的每个水平都要进行试验,这样就会耗费大量的人......
  • 双因素方差分析全流程
    上篇文章讲述了“单因素方差分析全流程总结”,单因素方差分析只是考虑了一个自变量(定类)与一个因变量(定量)之间的关系,但是在实际问题研究中可能研究两个或者几个因素与因变量......
  • 一、基础算法(快排,归并,二分,高精度,前缀和,差分)
    一、基础算法快速排序题目:给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。数据范围:1≤n≤100000,所有......