草庐IT

差分法

全部标签

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

😽PREFACE🎁欢迎各位→点赞👍+收藏⭐+评论📝📢系列专栏:算法💪种一棵树最好是十年前其次是现在1.什么是前缀和前缀和指一个数组的某下标之前的所有数组元素的和(包含其自身)。前缀和分为一维前缀和,以及二维前缀和。前缀和是一种重要的预处理,能够降低算法的时间复杂度。可以快速地求出某一段的和。2.一维前缀和2.1前缀和公式已知数组:前缀和:2.2前缀和的作用而且前缀和时间复杂度:预处理O(n),查询O(1),效率比较高效,后续也会有一些其他的解法,比如说线段树,树状数组等,前缀和的运行时间是最短的。【补】关于左端边界是1的选择我们会发现求l到r的和时,用的是,类似于数学里面的数列,此时令下标要l

【学习总结】一、二维前缀和 && 一、二维差分

专栏:数据结构和算法这不是马上要蓝桥杯了嘛,我就开始刷蓝桥杯的真题和模拟题(点这(填空)|点这(编程))发现出现了很多涉及矩阵的的题,其中前缀和差分很重要,但每次做题又容易写错或理解不当。因此我要在这认真的总结一下这部分知识点,并搭配图解和习题从本质上深刻的理解它们。☆一维前缀在高中的时候我们肯定都学了数列吧,还有数列求和。那这个公式就一点不陌生了。数列的前n项和Sn减去数列的前n-1项和Sn-1等于它的通项公式,而将这种方式运用在编程中就能快速算出每一项对应的前缀和。一般为了方便起见数组下标都从1开始,上面动态图掩饰主要是便于大家理解。将上述图解用代码实现:for(inti=1;i>nums

【学习总结】一、二维前缀和 && 一、二维差分

专栏:数据结构和算法这不是马上要蓝桥杯了嘛,我就开始刷蓝桥杯的真题和模拟题(点这(填空)|点这(编程))发现出现了很多涉及矩阵的的题,其中前缀和差分很重要,但每次做题又容易写错或理解不当。因此我要在这认真的总结一下这部分知识点,并搭配图解和习题从本质上深刻的理解它们。☆一维前缀在高中的时候我们肯定都学了数列吧,还有数列求和。那这个公式就一点不陌生了。数列的前n项和Sn减去数列的前n-1项和Sn-1等于它的通项公式,而将这种方式运用在编程中就能快速算出每一项对应的前缀和。一般为了方便起见数组下标都从1开始,上面动态图掩饰主要是便于大家理解。将上述图解用代码实现:for(inti=1;i>nums

【蓝桥模板】——考试倒计时3天,你和省一就差这最后10分了(差分模板)

 大家好,我是爱分享的小蓝,欢迎交流指正~ 全文目录🧭🎁差分模板🌲差分-树木上药🚀传送锚点 💡思路点拨🍞代码详解   🎄差分-小明的彩灯🚀传送锚点​ 💡思路点拨🍞代码详解 🎁差分模板差分三部曲=差分相减+转换加减+前缀相加#差分三部曲#1.差分相减(差分公式)foriinrange(len(dp)-1,0,-1):dp[i]-=dp[i-1]#2.转换加减(区间加减→端点加减)dp[l-1]+=vdp[r]-=v#3.前缀相加(前缀和公式)foriinrange(1,n):dp[i]+=dp[i-1]'''dp=[1,2,3,4,5,7,2]+[0]首先假设有一个数组:1234572差分后:1

【蓝桥模板】——考试倒计时3天,你和省一就差这最后10分了(差分模板)

 大家好,我是爱分享的小蓝,欢迎交流指正~ 全文目录🧭🎁差分模板🌲差分-树木上药🚀传送锚点 💡思路点拨🍞代码详解   🎄差分-小明的彩灯🚀传送锚点​ 💡思路点拨🍞代码详解 🎁差分模板差分三部曲=差分相减+转换加减+前缀相加#差分三部曲#1.差分相减(差分公式)foriinrange(len(dp)-1,0,-1):dp[i]-=dp[i-1]#2.转换加减(区间加减→端点加减)dp[l-1]+=vdp[r]-=v#3.前缀相加(前缀和公式)foriinrange(1,n):dp[i]+=dp[i-1]'''dp=[1,2,3,4,5,7,2]+[0]首先假设有一个数组:1234572差分后:1

Python语言二分法查找

前言二分法也就是二分查找,它是一种效率较高的查找方法。假如你们公司新来了一个人,叫张三,他是你们公司第47个人,过了一段时间后,有些人呢看张三不爽,离职了,那这时候张三肯定不是公司第47个人了,怎么样才知道张三排第几呢,下面我们用二分法把他找出来 思路给你一本1000页的书籍,随机给定一个页码,如何用最快的方式找到它?如果一页一页逐步去查找,则最高需要查找一千次!那我们如何用二分法来解决这个问题呢?二分法的关键就是二分这个词。 步骤1:设定一个页码作为中心点来将1000页分为两份,中位数的作用就是每次缩小一半查找范围,即达到开方的效果。即可以用(首位+末位)/2=中位数。 步骤2:将需要查找的

Python语言二分法查找

前言二分法也就是二分查找,它是一种效率较高的查找方法。假如你们公司新来了一个人,叫张三,他是你们公司第47个人,过了一段时间后,有些人呢看张三不爽,离职了,那这时候张三肯定不是公司第47个人了,怎么样才知道张三排第几呢,下面我们用二分法把他找出来 思路给你一本1000页的书籍,随机给定一个页码,如何用最快的方式找到它?如果一页一页逐步去查找,则最高需要查找一千次!那我们如何用二分法来解决这个问题呢?二分法的关键就是二分这个词。 步骤1:设定一个页码作为中心点来将1000页分为两份,中位数的作用就是每次缩小一半查找范围,即达到开方的效果。即可以用(首位+末位)/2=中位数。 步骤2:将需要查找的

【algorithm】认真讲解前缀和与差分 (图文搭配)

🚀writeinfront🚀📝个人主页:认真写博客的夏目浅石.📣系列专栏:AcWing算法笔记今天的月色好美文章目录前言一、前缀和算法1.1什么是前缀和?1.2一维前缀和二、二维前缀和三、一维差分四、二维差分总结前言这里介绍以下前缀和算法以及差分算法,用来梳理自己所学到的算法知识。一、前缀和算法1.1什么是前缀和?从我的理解角度来讲:前缀和就是高中数学当中的数列的求和Sn,差分就是前缀和的逆运算,就是递推公式。1.2一维前缀和先来看一道题目吧:这是之前训练的时候的一道经典的前缀和问题,我们很容易想到暴力作法:遍历数组代码如下:#includeconstintN=1e5+10;inta[N];i

【algorithm】认真讲解前缀和与差分 (图文搭配)

🚀writeinfront🚀📝个人主页:认真写博客的夏目浅石.📣系列专栏:AcWing算法笔记今天的月色好美文章目录前言一、前缀和算法1.1什么是前缀和?1.2一维前缀和二、二维前缀和三、一维差分四、二维差分总结前言这里介绍以下前缀和算法以及差分算法,用来梳理自己所学到的算法知识。一、前缀和算法1.1什么是前缀和?从我的理解角度来讲:前缀和就是高中数学当中的数列的求和Sn,差分就是前缀和的逆运算,就是递推公式。1.2一维前缀和先来看一道题目吧:这是之前训练的时候的一道经典的前缀和问题,我们很容易想到暴力作法:遍历数组代码如下:#includeconstintN=1e5+10;inta[N];i

python geopandas矢量图层交集、差分、合并的方法

解决问题:1、一个gdf图层中去掉另一个gdf图层相交的部分2、一个gdf图层和另个gdf图层相交的部分3、一个gdf图层合并为一行数据 实现方法:1、一个gdf图层中去掉另一个gdf图层相交的部分importgeopandasasgpd#导入数据1gdf_left=gpd.read_file('d:/map_left.shp')#导入数据2gdf_right=gpd.read_file('d:/map_right.shp')#计算数据1中去掉数据2交集部分,保留的geometry为数据1去掉后的部分gdf_left_diff_ritht=gpd.overlay(gdf_left,gdf_ri