首页 > 其他 > 详细

前缀和与差分

时间:2019-12-15 10:48:52      阅读:88      评论:0      收藏:0      [点我收藏+]

一,抄网上的,我觉得挺不错的。

一道题来引入前缀和的概念

要求一个数列某一区间 [ l,r ] 内的数字的和,我们可以用[ 0,r ]的和减去[ 0,l ]的和,这样计算的话,只需要用一个数组去记录到某一个下标为止的,之前所有数字的和就可以了。

int c[100];//c[i]记录从起点到c[i]的和
c[0]=arr[0];
for(int i=1;i<n;i++){
c[i]=c[i-1]+arr[i];
}
1
2
3
4
5
于是我们求[l,r]可以转换为

c[r]-c[l]
1
差分就是前缀和的逆运算
对于一个数组d[100]
d[i]=arr[i]-arr[i-1];
差分可以通过单点更新进行区间求和
通俗来讲就是说对区间内某一点进行更新,可以通过求从开始到i之前区间和求出d[i]
贴一道题

前缀和与差分

原文:https://www.cnblogs.com/beiyueya/p/12042111.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!