随笔分类 -  算法与技巧

摘要:类似于轻重链剖分,也有一种树链剖分方式叫做长链剖分,每次我们选子树深度最大的节点当做重儿子,注意这里子树深度是指一棵子树中所有结点的深度最大值。 有以下性质: 一个节点的 k 级祖先所在链的长度一定大于等于 k。 比较显然。因为如果小于 k 的话就会选从那个祖先到这个节点的路 阅读全文
posted @ 2022-02-02 07:53 hyl天梦 阅读(81) 评论(0) 推荐(0) 编辑
摘要:kahan 算法 kahan 算法使用来减少浮点数计算误差的。 众所周知,因为存储空间原因,浮点数之间的加法满足交换律但并不满足结合律,会有一定的误差产生。而 kahan 算法的目的是减少误差,具体方法是每一次都记录下来当前的误差,在下一个数中进行修正。 代码: float sum=0.0f,c=0 阅读全文
posted @ 2022-01-26 09:48 hyl天梦 阅读(773) 评论(0) 推荐(0) 编辑
摘要:![](https://pic.imgdb.cn/item/61d192a32ab3f51d919c1b51.png) 阅读全文
posted @ 2022-01-02 19:57 hyl天梦 阅读(59) 评论(0) 推荐(0) 编辑
摘要:所谓 dp 套 dp就是指这样一类题:给定 dp 结果,问有多少种输入能够导致这个结果,通常来说,这种问题可以转化为在自动机上 dp,内层 dp 的转移就是在自动机上转移。 这样说肯定是会有些笼统,我们考虑下面这一道例题。 例题 链接 如果是一个求 LCS 的 dp 的话,转移式是这样的: \[ f 阅读全文
posted @ 2021-11-07 16:25 hyl天梦 阅读(135) 评论(0) 推荐(0) 编辑
摘要:二分图博弈是博弈的一种,如今拿出来讲一下。 二分图博弈问题都具有一下特征: 有向图上所有点可以分为两个点集,点集内部没有连边。 每一次的决策都是把一个点移动到另一个点,不能重复经过一个点,不能移动就判负。 定理: 如果起始点一定是 任何 最大匹配中的点,那么从这个点开始,先手必胜,否则先手必输。 证 阅读全文
posted @ 2021-11-03 20:27 hyl天梦 阅读(303) 评论(0) 推荐(0) 编辑
摘要:这种数据结构并不常用,但有时候对简化思维和优化复杂度有一定的帮助。 简介 笛卡尔树是一个二叉树,每一个节点由两个键值构成,(k,w) 其中,k 满足二叉搜索树的性质,w 满足二叉堆的性质, 如果给定数组 a,以数组下标作为 k,用数组里面存放的值作为 \(w\ 阅读全文
posted @ 2021-11-03 18:38 hyl天梦 阅读(60) 评论(0) 推荐(1) 编辑
摘要:斯坦纳树问题大概是这样一个问题:给定平面上 n 个点,然后求把这些点连起来的最短路径是多长,点有点权。 如果放在 OI 上,那么就可以变成这样一个问题,给定一张联通的无向图,给定 k 个关键点,问把这 k 个关键点联通的边权和最小是多少,边有边权。 解决方法 我们设计一个状压 阅读全文
posted @ 2021-10-13 20:48 hyl天梦 阅读(137) 评论(0) 推荐(0) 编辑
摘要:浮点数的应用 浮点数有的时候就是非常神奇。 一般来说,对于 int 型或 long long ,我们 memset 通常会使用 0x3f3f3f3f 。但是如果对浮点数使用左边这个数,会得到一个非常小的数。对于浮点数,如果你得到一个和 0x3f3f3f3f 差不多大的,可以用 0x42 ,如果你用 阅读全文
posted @ 2021-07-09 17:00 hyl天梦 阅读(552) 评论(0) 推荐(0) 编辑
摘要:二进制分组 1 简介 二进制分组是一类在线算法,其最大的功能是以一个 log 的代价,让一个需要支持动态修改的问题变成不需要支持动态修改的问题。 2 算法概述 做法是对修改序列分组,二进制位一组,在不断加入修改的过程中,不断维护这个二进制序列。对于一个询问,扫一下每一个二进制序列,用对于每一 阅读全文
posted @ 2021-07-09 10:29 hyl天梦 阅读(897) 评论(0) 推荐(0) 编辑
摘要:多项式入门——拉格朗日插值 插值用来求解这样一类问题:给定 n(xi,yi) 求过这些点的多项式。 1 简介 设 f(x) 为这个多项式,我们有: (1)f(x)f(a)mod(xa) 这是因为: \[ f(x)-f(a)= 阅读全文
posted @ 2021-07-08 19:47 hyl天梦 阅读(476) 评论(2) 推荐(1) 编辑
摘要:离线算法入门——整体二分 1 简介 整体二分是一类离线方法,适用于以下数据结构题: 询问的答案具有可二分性。 修改对判定答案的贡献相对独立,修改之间互不影响结果。 修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值。 贡献满足交换律,结合律,具有可加性。 题目允许离线算法。 简单来说,你发 阅读全文
posted @ 2021-07-06 15:00 hyl天梦 阅读(1302) 评论(0) 推荐(3) 编辑
摘要:wqs 二分浅谈 1 适用范围 wqs 可以解决的问题具体来说是这样:给你一些物品,我们可以从里面选的物品是有限的,每个物品有其价值,要求最大化这个价值,价值有可能为负。 抽象来说,就是给你一些物品,有一些限制,如果没有限制的做法很简单,要求求一个最优值。 2 问题解决 很显然,我们可以有一个 dp 阅读全文
posted @ 2021-07-05 14:44 hyl天梦 阅读(1301) 评论(0) 推荐(4) 编辑
摘要:决策单调性优化 dp——四边形不等式 所谓的决策单调性指的就是最优决策点是单调的。 例如 dp 方程: fi=min{fj+w(i,j)}jii 的最优决策点。如果有 \(\forall i,\forall i'<i,j_{i'}\le j_i\ 阅读全文
posted @ 2021-07-05 09:23 hyl天梦 阅读(177) 评论(0) 推荐(0) 编辑
摘要:斜率优化 dp 浅谈+刷题笔记 忽略阶段变量,我们如果有这样的 dp 递推式: fi=maxormin{fk+valk,i} 其中如果 valk,i 即与 i 有关也与 k 有关。 这种方程我们通常可以用斜率优化,把凸包维护出 阅读全文
posted @ 2021-07-03 11:33 hyl天梦 阅读(48) 评论(0) 推荐(0) 编辑
摘要:单调队列优化 dp 浅谈 1 形式 在 1D1D dp 优化中,单调队列是最基础的一中,通常是对决策集合的单调维护。 如果一个 dp 方程满足这样的形式 fj=maxormin{fk+valj,k} 其中 valj,k 只与 j 或 \(k\ 阅读全文
posted @ 2021-07-03 08:54 hyl天梦 阅读(109) 评论(0) 推荐(1) 编辑
摘要:自动机入门——后缀自动机 1 数据结构简介 后缀自动机是一个可以解决许多字符串相关问题的有力的数据结构,字符串的 SAM 可以理解为给定字符串的所有子串的压缩形式,SAM 的空间复杂度和构造的时间复杂度均为线性的,准确的说,一个 SAM 最多有 2n1 个节点和 3n4 条转移边。 2 阅读全文
posted @ 2021-06-24 15:42 hyl天梦 阅读(129) 评论(0) 推荐(0) 编辑
摘要:AC 自动机 1 算法简介 AC 自动机是一个以 Trie 为基础结合 KMP 的思想建立的。在 AC 自动机中,每一个状态代表着某个模式串的前缀,而整个 DFA 的结构其实是所有模式串的 Trie 树。 而 AC 自动机可以处理这样一个问题:多模式匹配。即给你若干个模式串和一个主串,要求我们对每一 阅读全文
posted @ 2021-06-23 17:49 hyl天梦 阅读(376) 评论(0) 推荐(0) 编辑
摘要:确定有限状态自动机学习笔记 1 简介 自动机是一个对信号序列进行判定的数学模型。其中,信息序列是指一连串有顺序的信号,例如字符串从前到后的每一个字符,数组从 1n 的每一个数。判定指的是针对某一个命题给出是真还是假的回答,例如判断字符串是否回文。 2 讲解 自动机的工作原理和地 阅读全文
posted @ 2021-06-23 16:28 hyl天梦 阅读(739) 评论(0) 推荐(0) 编辑
摘要:随机化算法入门——模拟退火 1 算法简介 模拟退火算法 (Simulated Annealing,SA) 最早的思想是由 N. Metropolis 等人于1953 年提出。1983, S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。它是基于 Monte-Carlo 迭代求解策略 阅读全文
posted @ 2021-06-22 11:57 hyl天梦 阅读(599) 评论(0) 推荐(0) 编辑
摘要:Dancing Links X 求解精确覆盖 舞蹈链能够解决这样的一类问题: 给你一个 01 矩阵,要求你选择一些行,使得所以列上都有其只有一个 1 在这里面出现。 因为数独问题能够转化成上面这个问题,所以 DLX 是解决数独问题的有力工具。 1 简介 无没有在百度百科上找到 2 算 阅读全文
posted @ 2021-06-18 19:32 hyl天梦 阅读(139) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩