04 2023 档案
摘要:部分内容来自 OI-WIKI。 1. 堆 0. 堆的定义 堆是一棵二叉树,满足每个节点的键值都大于等于它的父亲节点或者小于等于它的父亲节点。每个节点的键值都大于等于它的父亲节点的叫小根堆,每个节点的键值都小于等于它的父亲节点的叫大根堆。 优先队列是一种抽象数据类型,它是一种容器,里面有一些元素,这些
阅读全文
摘要:一、最近公共祖先 最近公共祖先 二、树链剖分 重链剖分 长链剖分 三、树分治 点分治 点分树 四、计数问题 Prufer 序列
阅读全文
摘要:一、概述 前置知识:树的重心。 1. 经典应用 1 假设我们要统计一棵有 个节点的树上所有点对之间距离是 的有多少对。注意树上的边有长度。 。 一个朴素的算法是遍历树上的所有点对,处理出距离(也就是链的长度)。 时间复杂度 。 考虑优化。由于
阅读全文
摘要:一、前言 讲一下高斯-约旦消元法。 它适用于处理 元 1 次 方程组。 误差较小并且好写。 二、步骤 主要用消元的方式求解,就是一列列处理,每一次处理消掉这一列所有其它的未知数。 处理第 列: 找到当前这一列的所有系数的绝对值的最大值,确定在第 行。 如果这一列全是 0,那么
阅读全文
摘要:一、定义 因数/约数:给定一个正整数 , 的因数/约数就是所有满足 是 的正整数倍的 。 最大公因数/最大公约数:给定两个正整数 , ,求一个最大的正整数数 ,使得它同时是 和 的因数。 一般在 OI 中记为 ,在数
阅读全文
摘要:前置知识:Trie 树、KMP 算法。 相信大家第一次听见这个算法都会很兴奋。 自动机,就是依据一个或者一些字符串建出来的无向图。 AC 自动机全名 Aho-Corasick Automaton。 它可以在 的时间内解决多模式串的匹配问题。 它的本质就是在 Trie
阅读全文
摘要:FHQ Treap 这是一个很好理解、码量短、应用多变、容易可持久化的平衡树。我认为这是最实用的平衡树。 我们结合例题讲解:【模板】普通平衡树。 主要通过 split 和 merge 来维护。 首先平衡树有三个性质: 堆性质,这里我们将维护一个小根堆(事实上维护大根堆也没有关系),即是一棵二叉树,树
阅读全文
摘要:一、前言 感觉它本身没有什么用。主要是用于计数问题。 前置知识:树的定义。 二、定义 对于一棵有 个节点的无根树 ,定义其 Prufer 序列为执行以下操作 次所形成的长度为 的正整数序列。 ·选择其编号最小的度数为 的节点,输出唯一与其相邻的节点的编号
阅读全文
摘要:0.前言与规定 首先关于写这篇文章的动机,主要是看见了 Alex_Wei 写的 Dp 优化大杂烩I 和 Dp 优化大杂烩II ,然后我也想写一个。内容有参考他的。 动态规划的基础是状态设计,然而状态设计优化没有普遍性方法,全靠做题的经验。 动态规划的核心是转移方程,一般的优化都是针对转移方程进行优化
阅读全文
摘要:2.斜率优化动态规划 提示:由于这些式子比较长,读代码时建议点代码框右上角的“全屏”。另外, 比较多,可能会卡。 2.1 斜率优化的概念以及基本方法 斜率优化动态规划时信息学竞赛中一种常见的优化动态规划的方式。 它适用于转移方程形为 \(f_i=\max or \min\{-p(i
阅读全文
摘要:3.李超线段树优化动态规划 3.1 李超线段树优化动态规划的基本方法 数据结构中先搞 李超线段树 的做法,因为代码短常数小。或者可以上 OI-WIKI 学习,它那个应该讲得比我好,而且还有图。 李超线段树适用于优化一些 型的动态规划,而且它们的转移方程形似 $f_i=p(\max
阅读全文
摘要:一、基础线段树 二、扫描线 就是维护矩形的面积/周长并。 1. 面积并 用一条线从下往上扫,将所有矩形变成一片一片的(感性理解),容易知道最多 片,每片的贡献是 。 最多 条竖直的线,所以最多 个端点,最多 个
阅读全文
摘要:一、前言 以下,所有 LCA 题目、RMQ 题目分别均为洛谷模板 https://www.luogu.com.cn/problem/P3379 和 https://www.luogu.com.cn/problem/P3865 在一棵树上,一个节点的祖先定义为从根节点到这个节点的父亲节点的链上的所有点
阅读全文
摘要:口胡一下,从青色开始 E - Grid Filling 给定一个W×H的矩阵,每个格子有一个数,在1和N之间,给定w<=W,h<=H,对于每个满足1<=i<=W-w+1,1<=j<=H-h+1的格子(i,j),求以它为左上角的w×h矩阵被遮住后整个大矩阵还剩下几种数字。 W,H,N,w,h<=300
阅读全文
摘要:(绝大部分都是贺的,来自 OI-WIKI 和 洛谷题解 ,自己抄一遍印象深刻一点,部分代码未编译,不保证正确性,但大体是对的) 一、DFS 生成树 注意可能有多棵,因为图可能不联通。 树边(tree edge):示意图中以黑色边表示,每次搜索找到一个还没有访问过的结点的时候就形成了一条树边。 反祖边
阅读全文