自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 数学专题:同余定理、gcd与lcm、中位数定理、筛法、快速幂等

数学专题:同余定理、gcd与lcm、中位数定理、筛法、快速幂等

2021-10-24 22:18:37 905

原创 单调队列 + 前缀和:连续子序列的最大和

单调队列 + 前缀和:连续子序列的最大和文章目录单调队列 + 前缀和:连续子序列的最大和单调队列问题:思路:代码:单调队列  单调队列能在O(N)的时间内方便地维护一个长度为n的序列中,每个长度为m的区间的区间最值。单调队列是一个双端队列,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。单调递增队列内部元素始终为单调递增。同理单调递减队列内部始终为单调递减。而我们对单调队列进行的所有操作就是为了维护上述单调性质。  我们通过一个例子理解单调队列的运作方式:  队列为单调递增队列时,若当前

2021-10-09 10:43:32 627

原创 字符串HASH:判断子串

字符串HASH:判断子串文章目录字符串HASH:判断子串字符串HASH问题:思路:代码:字符串HASH  字符串HASH,顾名思义,就是将不同字符串映射成不同数字。  字符串HASH是一个既简单又好写,适用性相当广泛的算法。字符串HASH可以替代KMP算法(字符串模式匹配)、马拉车算法(找回文串)等  我们知道,将不同字符串映射成不同数字并不是一件难事,但如果单独地把一个串映射成数字而不能获得这个串的子串的信息,那么这种映射是低端的。如果能够将一个字符串HASH的同时方便的调取其子串的HASH值,

2021-10-05 17:00:19 706

原创 序列自动机:重复子序列问题

序列自动机:重复子序列问题问题:思路:  我们可以用序列自动机来判断子序列,如何处理A可重复的问题呢?我们并不需要真的重复A,当我们用序列自动机判断某个元素不存在时,A重复后该元素可能会出现(即该元素在遍历位置之前),因此我们重新回到位置1开始继续找寻该元素即可,同时重复次数+1  如何判断无论重复多少次都不可能为子序列?若A无论重复多少次,B都不会是A的子序列,则表明B中含有A中没有的字符(若B中的字符A中都有,则进行多次重复后,一定能在A中找到B中对应的字符)。那么如何判断B中是否含有A中没

2021-10-03 21:57:01 346 1

原创 序列自动机:判断子序列

序列自动机:判断子序列文章目录序列自动机:判断子序列序列自动机问题:思路:代码:序列自动机  设想这样一个问题:判断字符串 s 是否为字符串 t 的子序列,我们可以使用双指针,两个指针分别从s和t的第一个元素开始,不断进行匹配移动,时间复杂度为O(n+m),n,m分别为s和t的长度。但若有大量输入的 S,称作 S1, S2, … , Sk 其中k非常大,例如k >= 10亿,你需要依次检查它们是否为 T 的子序列,若我们仍然使用双指针进行逐个判断,时间复杂度为O(k * m + ∑n),这样的时

2021-10-03 19:55:43 382

原创 二维前缀和+二分答案:全为1面积最大正方形Ⅲ

二维前缀和+二分答案:全为1面积最大正方形Ⅲ文章目录二维前缀和+二分答案:全为1面积最大正方形Ⅲ二维前缀和问题:思路:代码:二维前缀和  若要求得一个矩阵内任意一个子矩阵中所有数字之和,我们可以使用循环求和,时间复杂度为O(N2),而使用二维前缀和可将此操作优化到O(1)  如图所示,pre[2] [3] 即为黄色区域内元素之和,pre[4] [5]为黄色和棕色区域内元素之和。  如何使用二维前缀和求得子矩阵元素之和?  如图所示,要求左上角为(3,3),右下角为(5,5)表示的矩形内元素和

2021-10-03 15:34:26 306

原创 前缀和+二分答案 or 尺取法:子序列问题III

前缀和+二分答案:子序列问题III文章目录前缀和+二分答案:子序列问题III前缀和二分答案二分答案模板问题:思路:代码:前缀和  前缀和是一种重要的预处理,能大大降低查询的时间复杂度。前缀和是指一个数组的某项下标之前(包括此项元素)的所有数组元素的和。即我们可以用一个数组来保存另一个数组的前缀和,记为前缀和数组:  利用空间换时间的思想,通过建立前缀和数组,我们可以将求数组中某个连续序列之和的操作从O(n)的复杂度降到O(1)  例如我们有一个具有10个元素的数组A,设下标从1开始,pre[8]

2021-10-02 20:52:02 384 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除