【算法基础4】前缀和与差分

一、前缀和

        1.前缀合的定义:若Si=a1+a2+……+ai,则称Si为ai的前缀和,即前i项和。

        2.一维前缀和:由S[i] = S[i-1]+ai计算得出前缀和数组S[i],就可以由S[r]-S[l-1]在单位时间内得出区间【l,r】的和。

        注:为了统一下标,a由1开始读入,循环从1开始,S0=0。

        3.二维前缀和:由S(i,j)= S(i-1,j)+S(i,j-1)-S(i-1,j-1)+a(i,j)计算得出前缀和数组S[i,j],就可以由S(x2,y2)-S(x2,y1-1)-S(x1-1,y2)+S(x1-1,y1-1)在单位时间内得任意子矩阵【(x1,y1),(x1,y2),(x2,y1),(x2,y2】的和。

二、差分

        1.差分的定义:若Si=b1+b2+……+bi,则称bi为Si的差分,即前缀和的逆运算。

        2.一维差分:由b[l]+c,b[r+1]-c可以在单位时间内使[l,r]段上的S都+c,可以由b[i]相当于在区间[i,i]上+Si构造差分数组。

        3.二维差分:由b(x1,y1)+c,b(x1,y2+1)-c,b(x2+1,y1)-c,b(x2+1,y2+1)+c可以使S上任意子矩阵【(x1,y1),(x1,y2),(x2,y1),(x2,y2】都+c。可以由b[i,j]相当于在子矩阵[(i,j)(i,j)]上+S[i,j]构造差分数组。

        注:以矩阵右下角为基点,左上角点的坐标都要-1,以矩阵左上角为基点,右下角点的坐标都要+1。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值