摘要: [HAOI2010]软件安装 O(nm)泛化物品优化写法 泛化物品优化详细解释请看 国家集训队2009论文集浅谈几类背包题(第十面) 代码片段: void dfs(int x,int sum) { if(sum<=0) return ; for(re int i=0,t;i<_e[x].size() 阅读全文
posted @ 2020-10-09 20:25 zfz04 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 单调队列优化背包 单调队列: 概念:单调队列是一个双端队列,内部元素具有单调性(单调增或单调减),且保持先插入的一定在后插入的前面(也就是维护第二个值——在原序列中的编号,是递增的); 有两个操作: 插入:从对尾插入,和目前对尾作比较,如果会破坏单调性就删除,直到找到不会破坏单调性的位置为止; 获取 阅读全文
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) 编辑
摘要: 树形DP学习笔记 ps: 本文内容与蓝书一致 树的重心 概念: 一颗树中的一个节点其最大子树的节点树最小 解法:对与每个节点求他儿子的$size$ ,上方子树的节点个数为$n-size_u$ ,求对于每个节点子树的最大值,找出最小的那个就好了; (我觉得就不需要code了) 树的直径 概念:一颗带权 阅读全文
posted @ 2020-01-18 17:42 zfz04 阅读(387) 评论(4) 推荐(3) 编辑