LCA 最近公共祖先
实质是把节点每次向上暴力移动一步变成更加高明的按 {2^k} 步向上移动,借用的是每个数都可进行二进制分解的定理。期间维护一个父节点数组 fa,fa[i][k] 代表 i 向上移动 {2^k} 步的父节点。那我们该如何更新这个父节点呢?显然有 {2^k=2^{k-1}+2^{k-1}},就是两次向上移动 {2^{k-1}} 步,因此可以用 fa[fa[i][k - 1]][k - 1] 来递归更新。
DP斜率优化/凸包优化 做题笔记
受限于在线编辑器的性能瓶颈(省流:写太多了会很卡),在此决定把另外的(不在算法提高课中)DP斜率优化题目单独拎出来写一篇做题笔记。旨在记录算式消元换元的原则与技巧、凸包维护的方法。题目大致由易到难。
动态规划的几种优化方式 Day2 斜率优化
前情提要:Day1 单调队列优化
动态规划的优化方式 Day1 单调队列优化
有人私信我,说能不能不要在博客里写那么多“显然”。我的回答是:“好的,全部换成‘Apparently’”。我寻思我也没写那么多显然啊
并查集的高级用法——权值并查集与种类并查集
并查集,或称<ruby>DSU<rt>Disjoint Set Union</rt></ruby>,是一种管理元素所属集合的数据结构。每次查询时把沿途的节点的父节点一并设置成全局父节点,从而达到均摊复杂度 \mathcal O(\alpha(n)) 的超高效率(其中 \alpha(n) 为 n 的反阿克曼函数,可以看作为常数复杂度)。基于并查集的许多特性(包括好写),人们开发出了许多不同种类不同用途的并查集,其中就包括带边权的权值并查集和对元素进行分类的种类并查集。这篇文章将探讨这两种并查集的实现及相关应用。
Cover Image of the Post
基础数据结构合辑
<ruby>单调栈<rt>Monotone Stack</rt></ruby>,顾名思义,是一种栈状结构,且栈内元素单调。它既满足栈的“<ruby>先进后出<rt>F I L O</rt></ruby>”性质,也符合元素从栈顶到栈底呈单调排列(或者从栈底到栈顶)。根据单调性的不同,大致可以分为“单调递增栈”和“单调递减栈”。若无特殊说明,单调栈的递增/递减判断顺序是从栈顶到栈底。
伸展树 Splay
上回书说到:平衡树。
Cover Image of the Post
平衡树 Treap
书接上回:二叉搜索树 BST。二叉搜索树是本文所讲平衡树的必要前置知识。
Cover Image of the Post
二叉搜索树 BST
<ruby>二叉搜索树<rt><b>B</b>inary <b>S</b>earch <b>T</b>ree</rt></ruby>是一种特殊的二叉树,它有如下的性质:
Cover Image of the Post
差分约束
我们称形如下面给出的多元一次不等式组为一个差分约束系统:
Profile Image of the Author
JustPureH2O
穷方圆平直之情,尽规矩准绳之用
公告
JustPureH2O 的博客现已正式迁移至 Astro!原 Hexo 网站将移至 https://hexo.justpureh2o.cn/
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
66
分类
12
标签
46
总字数
264,510
运行时长
0
最后活动
0 天前

目录