摘要: 单调队列优化背包 单调队列: 概念:单调队列是一个双端队列,内部元素具有单调性(单调增或单调减),且保持先插入的一定在后插入的前面(也就是维护第二个值——在原序列中的编号,是递增的); 有两个操作: 插入:从对尾插入,和目前对尾作比较,如果会破坏单调性就删除,直到找到不会破坏单调性的位置为止; 获取 阅读全文
posted @ 2020-10-07 15:40 zfz04 阅读(141) 评论(0) 推荐(1) 编辑
摘要: 斜率优化学习笔记 (解释太麻烦,这里笼统的讲一下,具体看书,书上更详尽,所以无视这部分) 斜率优化通常一般可以将$n^2$的DP优化到$O(n)$ ,是一个很强的优化。 形如: \[ f[i]=min\{f[j]+(s[i]-s[j])^2\}(i-d\leq j) \] 看似好像可以用单调队列的, 阅读全文
posted @ 2020-10-07 15:38 zfz04 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 二分+HASH求LCP(最长公共前缀) Question: 如何求第i位开始的后缀和第j位开始的后缀的最长公共前缀的长度? Answer: 设$lca(i,j)$为题目所求,$hash(i,L)$为以$i$往后$L$位的$hash$值; 先倒过来求$hash$值:\(h[i]=h[i+1]*b+s[ 阅读全文
posted @ 2020-10-07 15:36 zfz04 阅读(445) 评论(0) 推荐(0) 编辑
摘要: Lyndon words 定义: 对于一个字符串$S$,若$S$的最小后缀是其本身,则$S$为一个$lyndon$串; 记为$S\in L$; 即: \[ S \in L \begin{cases} minsuf(S)=S\\ S为其本身的\mathbf{严格}最小循环 \end{cases} \] 阅读全文
posted @ 2020-10-07 15:35 zfz04 阅读(215) 评论(0) 推荐(0) 编辑