二维差分基础

摘要:
(bleft[iight]left[1ight]=aleft[iight]left[1ight]-aleft[ilight]left[jight]-aleft[iight]left[j-1ight]+aleft[ijight]left[j-jight])很容易理解,带有二维前缀的~(b)是一个差异数组,一维差异从需要更新的位置开始。

二维差分数组构造:

(bleft [ i ight ]left [ j ight ]=aleft [ i ight ]left [ j ight ]-aleft [ i-1 ight ]left [ j ight ]-aleft [ i ight ]left [ j-1 ight ]+aleft [ i-1 ight ]left [ j-1 ight ])

这个式子配着二维前缀和还是挺好理解哒~

(b)为差分数组,(a)为原数组

二维差分的维护:

一维差分是在需要更新的位置开始,在不需要的位置结束,那么二维的也一样。

 例如:我们要在以(x1,y1)为左上角,以(x2,y2)为右下角的矩阵区间的所数都加上一个值(x)

(x1,y1)                                                          
     
   (x2,y2) 
     

如果我们要在区间开始的位置(+x),根据前缀和的思想,它影响的就是整个表格区域

那么就多影响了下面的图标区域:

(x1,y1)                                                          
     
   (x2,y2) 
     

所以在上述图标部分(-a)消除(+a)的影响:

(bleft [ x1 ight ]left [y1 ight ]+=x)

(bleft [ x1 ight ]left [y2+1 ight ]-=x)

(bleft [ x2+1 ight ]left [y1 ight ]-=x)

(bleft [ x2+1 ight ]left [y2+1 ight ]-=x)多减的加上

免责声明:文章转载自《二维差分基础》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇day14-python异常处理在windows 7使用BCDEdit.exe修改启动菜单项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue锚点双向绑定

需求描述: 头部固定吸顶,右侧菜单,左侧长页面,要求左侧滚动右侧菜单对应高亮,点击右侧菜单,左侧页面滚动到对应位置。(这个对应位置就是模块头部刚好在固定头部下面) 需求分析: 头部和右侧可使用fixed定位,左侧长页面不限制高度。有两件事需要处理:监听滚动事件,实现滚动效果。 解决问题 // 监听事件添加和销毁 mounted() { docume...

Houdini中给火花渲染准确的运动模糊

估计大家都知道使用运动速度来进行运动模糊的渲染,但是往往这个方法得到的运动模糊都是线性变化的,虽然乍一看没什么问题,但是如果想要每一帧的模糊轨迹也是有曲线变化的而不是僵硬的直来直去的话,使用trail算个速度来做的运动模糊是永远做不到这一点的。 这里我想通过常用的火花(spark)的运动模糊来讲一讲我所了解的一些比较好的方法。 所谓渲染中的运动模糊无非就是...

关于js在iframe中显示与隐藏的控制方式(display、visilibity以及hide()/show())

引子: 在项目开发过程中,使用iframe嵌套不同的页面,通过菜单来控制页面的切换展示。最开始使用的是show()和hide()方法来控制页面的展示与隐藏,但是遇到嵌套的页面高度不固定, 当嵌套页面过高会出现滚动条,如果拉下滚动条到某个位置,然后切换页面,再切换到上个页面时滚动条就自动到顶部而不是在之前下拉到的位置,所以这就存在问题。 这里,自己简单写了一...

URL中#号(井号)的作用

今天又看到了一篇非常好的来自HTTPWatch的文章,不得不推荐给大家。 1. 井号在URL中指定的是页面中的一个位置 井号作为页面定位符出现在URL中,比如:http://www.httpwatch.com/features.htm#print ,此URL表示在页面features.htm中print的位置。浏览器读取这个URL后,会自动将print位置...

vue 格式化银行卡(信用卡)每4位一个符号隔断

问题 在做银行卡输入框时有一个需求如题,这里举例用-隔断 调查 查看了很多大公司网站的银行卡输入,发现还有有很多缺陷的: 有的是在中间删除,光标会跳到最后; 有的是能删除掉中间隔断符的; 等等,逻辑感觉比较混乱,或者是我不懂他们的高深设计吧。 只有支付宝的设计感觉是比较合理的,改变了只有输入框的固有方案,放图: 上面出现的显示框不可修改,能清晰看出四位隔断...

rt—移植笔记2(Lwip)

首先参考f107已经有的目录结构添加Lwip这一组,添加各种.c文件及.文件。 还有drive下边的很重要的eth.c 到此,工程编译通过。(刚开始,小编是一个一个 的比对。。。一个一个错误排查。。。好心累,,,完全可以打开f103相应的文件,找到文件位置,f407就参照文件位置将文件下边全部添加即可,大大提高效率) 接下来,打开lwip的宏定义,rt...