搜索
热搜: NOIP OIer 神牛
查看: 161|回复: 5

差分是个什么东东?

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-17 21:09:00 | 显示全部楼层 |阅读模式
本帖最后由 o0iver 于 2024-4-17 21:10 编辑

先做个自我介绍
大家好我是o0iver
那直接进入正题:差分是个什么 东东??


那我们就需要先了解一下他的兄弟:前缀和

1.前缀和
    前缀和通俗的定义就是一个数组前n项的和
     就是sum[1]=a[1],sum[2]=a[1]+a[2],sum[3]=a[1]+a[2]+a[3]......
    举个例子:


     原数组(a):1,3,4,5,7
     那么前缀和sum数组就等于:1,4,8,13,20
     感觉没什么用是不是?
     那么我们来看看用前缀和会发生什么?
     


     例题1:

          给定数组A,现有q次询问,每次要求求出区间[l,r]的和
   
          感觉十分的简单,每次询问for访问l到r,直接求和即可。


          但是,如果数据加强呢?
          已知A的长度<=10^6   q<=10^6
          哦,完美超时
          这时前缀和的作用就体现出来了
          l到r的和其实可以转化为1到r的和减1到l的和
                而通过前缀和,这两项数值都可以初始化!’
          就这样,区间操作的O(n),变成了O(1)
         总复杂度也降到了O(n+q)
          完美!!
2.差分
       为什么说差分跟前缀和是兄弟,因为差分完全是前缀和的逆运算
       在前缀和中相加在差分中自然要相减!!
       于是,我们就有
               sum=a[i+1]-a
        那么,前缀和有着区间变单点的操作,差分自然不少!!
        我们先看结论
         如果区间[l,r]加上一个数,那么在差分数组里:
               sum[l]+n;            sum[r+1]-n;  
         原理也很简单,那就是被减数,减数和差的关系
         那我们确实将区间变为了单点,但是这又跟原数组有什么关系?
3.兄弟同心,其利断金
         终极大招:差分数组的前缀和是原数组!!!!!!!!!
         那么上面的问题得到了解决,在最后做一遍前缀和,所有改动便转移回了原数组
         如果我们结合起来,两位兄弟对着超时就是一顿胖揍!
         让我们帮他们,一起胖揍超时!!!


对了,管理员看看吧,取消验证码啊!!!!!
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-21 14:59:46 | 显示全部楼层
oliver:你能把验证码给我取消给你马内
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-19 20:24:54 | 显示全部楼层
论坛好久没有帖子了,大家咋都不吱声
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-19 20:25:11 | 显示全部楼层
这位O0iver是谁啊
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-21 14:00:18 | 显示全部楼层
这位O0iver是谁啊(与楼上同样的问题)
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2024-4-21 14:59:12 | 显示全部楼层
删验证码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表