首页 > 其他分享 >前缀和and差分

前缀和and差分

时间:2023-01-20 22:11:51浏览次数:33  
标签:y2 前缀 差分 x2 y1 x1

1.前缀和

求前缀和的时间复杂度与数据的规模有关,但是用前缀和去求某一区间的和时间复杂度为O(1)

一维:
  • 一般让下标从1开始,可以避免特判

  • 一维前缀和 s[i]=a[1]+a[2]+……+a[i]

  • 求数组[l,r]之间的和 =s[r]-s[l-1]

二维:

  • 二维前缀和s[i][j]=a[i][j]+s[i][j-1]+s[i-1][j]-s[i-1][j-1]
  • [x1,y1][x2,y2]的和=s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]

2.差分

给出一串数a[n],构造差分b[n], 使得a[i]=b[1]+b[2]+……+a[i],可以将差分看作前缀和的逆运算

一维

这样当我们需要给a数组中的区间[l,r]都加上c,只需要将b[l]+cb[r+1]-c,时间复杂度为O(1)

void insert(int l,int r,int c)
{
    b[l]+=c;
    b[r+1]-=c;
}
二维:

类似于一维,如果要将[x1,y1][x2,y2]区间中的数都加上c,只需要将b[x1,y1]+=cb[x2+1,y1]-=cb[x1,y2+1]-=cb[x2-1,y2-1]+=c

参考二维前缀和

标签:y2,前缀,差分,x2,y1,x1
From: https://www.cnblogs.com/mpmp/p/17063316.html

相关文章

  • 面试题-什么是最左前缀法则?什么时候索引将失效?
    什么是最左前缀法则?什么时候索引将失效?如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索......
  • 【数组】 差分
    【数组】差分前缀和与差分我在前面的两篇博客里面简要介绍了一下一维、二维数组的前缀和的一些知识点,提到前缀和,那很自然地就会提到差分的概念。首先我们回顾一下前......
  • 【数组】 前缀和补充
    【数组】前缀和补充考虑到昨天写的前缀和博客有所欠缺,所以写这篇博客作为上一篇博客的补充。二维数组的前缀和首先,我们从先前提到过的一维数组的前缀和谈起。而一维......
  • 区间DP-二维前缀和-差分-6292. 子矩阵元素加 1
    304.二维区域和检索-矩阵不可变DescriptionDifficulty:中等RelatedTopics:设计,数组,矩阵,前缀和给定一个二维矩阵matrix,以下类型的多个请求:计算其子矩形......
  • hdu:Sum of Tribonacci Numbers(带前缀和矩阵快速幂)
    ProblemDescriptionEverybodyknowsFibonaccinumbers,nowwearetalkingabouttheTribonaccinumbers:T[0]=T[1]=T[2]=1;T[n]=T[n-1]+T[n-2]+T[n......
  • 【数组】前缀和
    前缀和给出一个数列:123456789它的前缀和:136101521283645前缀和即:从第一个元素到该元素之和通常我们会在数组中触及到这类知识。假设给出原数组......
  • P3275 [SCOI2011]糖果 差分约束+最短路
    //题意:给定一些限制条件,询问满足条件的任一正数解是什么。(详细题意搜原题)//思路:本题有几个额外信息很关键//最大人数1e5,连出去的边只有0和-1//如果我们......
  • LeetCode刷题(4)~ 最长公共前缀
    题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串“”。示例1:输入:[“flower”,“flow”,“flight”]输出:“fl”示例2:输......
  • 【学习笔记】差分约束
    1.算法介绍差分约束系统是一种特殊的\(N\)元一次不等式组,它包含\(N\)个变量\(X_1\simX_N\)以及\(M\)个约束条件,每个约束条件是由两个其中的变量做差构成的,形如......
  • 差分两道题
    https://www.acwing.com/activity/content/problem/content/334/参考代码:1//差分的性质运用和基本思维2//差分就不多说了基本操作3//题目要求得到的数都一样的......