摘要: 倍增优化DP 在线性DP中,我们一般是按照阶段将DP的状态线性增长,但是我们可以运用倍增思想,将线性增长转化为成倍增长 对于应用倍增优化DP,一般分为两个步骤 1.预处理 ,我们使用成倍增长的DP计算出与二的整次幂有关的代表状态 2.拼凑,根据二进制划分的思想,使用预处理出的状态拼凑出最后的答案(注 阅读全文
posted @ 2022-11-30 22:34 spdarkle 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 常见DP类型 第一节:线性DP 思想:DP是作用在线性空间上的递推——DP的阶段按照各个维度线性的增长,从一个或多个边界点开始有方向的向整个状态空间转移扩展,最后在每个状态上保留的以自身为目标问题的最优解 简单的说,DP是不断划分自己的子问题(满足能从小问题推出大问题的答案),从最小的子问题开始一步 阅读全文
posted @ 2022-11-30 22:34 spdarkle 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 可持久化数据结构 可持久化Trie 思想概述 可持久化数据结构,是一种对原本数据结构进行的扩展,可以支持查询以前的历史版本的信息 在进行每一次操作的时候,我们都把需要更新的信息的节点全部创建一个新版本,起到节省空间的效果 关于这个算法的思想,就不多说了,书上有,给张照片就是 综合运用 众所周知,Ti 阅读全文
posted @ 2022-11-30 22:33 spdarkle 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 整体二分 思想概述 整体二分算法,全称为基于值域的分治算法,它的思想是这样的: 在某些题目中,我们需要处理很多个询问,而每一个询问都需要二分答案,且$check$函数类似,在我们进行每一次二分答案的时候,$check$函数返回的信息很有可能会被浪费掉,而整体二分就是来解决这个问题的 详细的说,整体二 阅读全文
posted @ 2022-11-30 22:32 spdarkle 阅读(179) 评论(0) 推荐(0) 编辑
摘要: CDQ 思想概述-基于离线的分治算法 首先明确几个概念: 动态问题:即带有修改操作的问题 静态问题:即无修改操作的问题 当一个问题是动态问题并且并不强制在线的,我们可以进行离线操作——对问题的某一维度进行分治 一般来说,CDQ分治分为三步 统计分治的前段区间$[l,mid]$的修改操作对$[mid+ 阅读全文
posted @ 2022-11-30 22:31 spdarkle 阅读(242) 评论(0) 推荐(2) 编辑
摘要: 点分治 在以前,我们做的都是在序列上的分治问题,现在我们研究一类用于树上静态路径统计的分治算法——点分治(动态需要扩展-点分树) 其核心思想是在树上进行分治 例题:TREE 给定一个有 N 个点(编号 0,1,…,N−1)的树,每条边都有一个权值(不超过 1000)。 树上两个节点 x 与 y 之间 阅读全文
posted @ 2022-11-30 22:30 spdarkle 阅读(46) 评论(0) 推荐(1) 编辑
摘要: Splay Splay基本操作 Splay是一类二叉查找树,与其他平衡树相比,也是运用旋转保证复杂度 其最重要的操作便是$rotate$ $and$ $spaly$了 先来谈旋转,我们都知道,旋转是这样的 仔细观察后,我们会发现,旋转操作可以拆解为三步,设$x$是$y$的父亲,$k$表示$y$是$x 阅读全文
posted @ 2022-11-30 22:29 spdarkle 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 分块 望月悲叹的最初分块 分块,优雅的暴力 分块也是同线段树等结构一样,维护区间操作的,不同于线段树和树状数组的是,分块所维护的信息并不需要满足区间可加性,以此,分块可以处理许多线段树等结构不可以处理的问题 简单来说,分块就是将整个序列分为若干个大小相同的块(最后一个可能不同),然后对于每一个块再加 阅读全文
posted @ 2022-11-30 22:29 spdarkle 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 线段树 概述 线段树是维护区间问题的利器,可以完成许许多多的区间问题,轻松完成区间修改区间统计,前提是只能维护满足区间可加性的信息 线段树基于分治思想,即将一个$[1,n]$的区间按照对半分,这样分成$O(n)$个节点。在线段树上,每一个节点代表一个区间,维护其内的信息,于是按照对半分的思想,我们可 阅读全文
posted @ 2022-11-30 22:27 spdarkle 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 树状数组 概述 树状数组是一种基于倍增和二进制划分思想,用于维护简单区间操作的数据结构,短小精悍 我们知道,每一个数都可以使用二进制表示为$a_0a_1a_2a_3…a_k(\forall i\in[0,k],a_i=0/1)$(由低位到高位共$k+1$位)的形式,其中第$i$位所表示的二进制的值为 阅读全文
posted @ 2022-11-30 22:26 spdarkle 阅读(17) 评论(0) 推荐(0) 编辑