随笔分类 - 算法与技巧
摘要:类似于轻重链剖分,也有一种树链剖分方式叫做长链剖分,每次我们选子树深度最大的节点当做重儿子,注意这里子树深度是指一棵子树中所有结点的深度最大值。 有以下性质: 一个节点的 级祖先所在链的长度一定大于等于 。 比较显然。因为如果小于 的话就会选从那个祖先到这个节点的路
阅读全文
摘要:kahan 算法 kahan 算法使用来减少浮点数计算误差的。 众所周知,因为存储空间原因,浮点数之间的加法满足交换律但并不满足结合律,会有一定的误差产生。而 kahan 算法的目的是减少误差,具体方法是每一次都记录下来当前的误差,在下一个数中进行修正。 代码: float sum=0.0f,c=0
阅读全文
摘要:
阅读全文
摘要:所谓 dp 套 dp就是指这样一类题:给定 dp 结果,问有多少种输入能够导致这个结果,通常来说,这种问题可以转化为在自动机上 dp,内层 dp 的转移就是在自动机上转移。 这样说肯定是会有些笼统,我们考虑下面这一道例题。 例题 链接 如果是一个求 LCS 的 dp 的话,转移式是这样的: \[ f
阅读全文
摘要:二分图博弈是博弈的一种,如今拿出来讲一下。 二分图博弈问题都具有一下特征: 有向图上所有点可以分为两个点集,点集内部没有连边。 每一次的决策都是把一个点移动到另一个点,不能重复经过一个点,不能移动就判负。 定理: 如果起始点一定是 任何 最大匹配中的点,那么从这个点开始,先手必胜,否则先手必输。 证
阅读全文
摘要:这种数据结构并不常用,但有时候对简化思维和优化复杂度有一定的帮助。 简介 笛卡尔树是一个二叉树,每一个节点由两个键值构成, 其中, 满足二叉搜索树的性质, 满足二叉堆的性质, 如果给定数组 ,以数组下标作为 ,用数组里面存放的值作为 \(w\
阅读全文
摘要:斯坦纳树问题大概是这样一个问题:给定平面上 个点,然后求把这些点连起来的最短路径是多长,点有点权。 如果放在 OI 上,那么就可以变成这样一个问题,给定一张联通的无向图,给定 个关键点,问把这 个关键点联通的边权和最小是多少,边有边权。 解决方法 我们设计一个状压
阅读全文
摘要:浮点数的应用 浮点数有的时候就是非常神奇。 一般来说,对于 int 型或 long long ,我们 memset 通常会使用 0x3f3f3f3f 。但是如果对浮点数使用左边这个数,会得到一个非常小的数。对于浮点数,如果你得到一个和 0x3f3f3f3f 差不多大的,可以用 0x42 ,如果你用
阅读全文
摘要:二进制分组 1 简介 二进制分组是一类在线算法,其最大的功能是以一个 的代价,让一个需要支持动态修改的问题变成不需要支持动态修改的问题。 2 算法概述 做法是对修改序列分组,二进制位一组,在不断加入修改的过程中,不断维护这个二进制序列。对于一个询问,扫一下每一个二进制序列,用对于每一
阅读全文
摘要:离线算法入门——整体二分 1 简介 整体二分是一类离线方法,适用于以下数据结构题: 询问的答案具有可二分性。 修改对判定答案的贡献相对独立,修改之间互不影响结果。 修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值。 贡献满足交换律,结合律,具有可加性。 题目允许离线算法。 简单来说,你发
阅读全文
摘要:wqs 二分浅谈 1 适用范围 wqs 可以解决的问题具体来说是这样:给你一些物品,我们可以从里面选的物品是有限的,每个物品有其价值,要求最大化这个价值,价值有可能为负。 抽象来说,就是给你一些物品,有一些限制,如果没有限制的做法很简单,要求求一个最优值。 2 问题解决 很显然,我们可以有一个 dp
阅读全文
摘要:决策单调性优化 dp——四边形不等式 所谓的决策单调性指的就是最优决策点是单调的。 例如 dp 方程: 设 为 的最优决策点。如果有 \(\forall i,\forall i'<i,j_{i'}\le j_i\
阅读全文
摘要:自动机入门——后缀自动机 1 数据结构简介 后缀自动机是一个可以解决许多字符串相关问题的有力的数据结构,字符串的 SAM 可以理解为给定字符串的所有子串的压缩形式,SAM 的空间复杂度和构造的时间复杂度均为线性的,准确的说,一个 SAM 最多有 个节点和 条转移边。 2
阅读全文
摘要:AC 自动机 1 算法简介 AC 自动机是一个以 Trie 为基础结合 KMP 的思想建立的。在 AC 自动机中,每一个状态代表着某个模式串的前缀,而整个 DFA 的结构其实是所有模式串的 Trie 树。 而 AC 自动机可以处理这样一个问题:多模式匹配。即给你若干个模式串和一个主串,要求我们对每一
阅读全文
摘要:确定有限状态自动机学习笔记 1 简介 自动机是一个对信号序列进行判定的数学模型。其中,信息序列是指一连串有顺序的信号,例如字符串从前到后的每一个字符,数组从 到 的每一个数。判定指的是针对某一个命题给出是真还是假的回答,例如判断字符串是否回文。 2 讲解 自动机的工作原理和地
阅读全文
摘要:随机化算法入门——模拟退火 1 算法简介 模拟退火算法 (Simulated Annealing,SA) 最早的思想是由 N. Metropolis 等人于1953 年提出。1983, S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。它是基于 Monte-Carlo 迭代求解策略
阅读全文
摘要:Dancing Links X 求解精确覆盖 舞蹈链能够解决这样的一类问题: 给你一个 矩阵,要求你选择一些行,使得所以列上都有其只有一个 在这里面出现。 因为数独问题能够转化成上面这个问题,所以 DLX 是解决数独问题的有力工具。 1 简介 无没有在百度百科上找到 2 算
阅读全文
