摘要: 数论导论 快速幂 求 $a^b\bmod p$ 的结果。 我们可以构造如下算法: $a^b=\begin{cases}(a^{\frac b2})^2 &\texttt{b is even}\a(a^{\frac{b-1}2})^2&\texttt{b is odd}\end{cases}$ 每次 阅读全文
posted @ 2023-01-12 17:12 jeefy 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 树链剖分 树链剖分是一个很神奇,但是在树上可以完成一些区间操作问题 简单来说,就是把一棵树分成一条条的链,通过维护链上的信息来维护整棵树的信息 基础知识可以参考我的另外一篇博客:算法学习笔记(5): 最近公共祖先(LCA) 这里假设你已经掌握了上述博客中的所有相关知识,并清晰了其背后的原理 性质?发 阅读全文
posted @ 2023-01-12 17:09 jeefy 阅读(56) 评论(0) 推荐(1) 编辑
摘要: 树上最近公共祖先(LCA)三种求法:倍增,DFS+ST表,熟练剖分 阅读全文
posted @ 2023-01-12 17:08 jeefy 阅读(299) 评论(0) 推荐(1) 编辑
摘要: 并查集 并查集,Disjoint-Set,或者通俗一点,叫做MergeFind-Set,是一种可以动态维护若干个不重叠的集合,并支持集合之间的合并与查询的数据结构。 集体来说,并查集支持下列两个操作: Find,查询元素所属集合 Merge,将两个元素所属集合合并 一般来说,为了具体实现,我们将每一 阅读全文
posted @ 2023-01-12 17:07 jeefy 阅读(77) 评论(0) 推荐(1) 编辑
摘要: 倍增 目录倍增查找 洛谷P2249重点变式练习快速幂ST表倍增更多的用法优化矩形查询优化建图优化 DP作者有话说 倍增,字面意思即”成倍增长“ 他与二分十分类似,都是基于”2“的划分思想 那么具体是怎么样,我们以一个例子来看 查找 洛谷P2249 依据题面,我们知道这是一个单调序列,当然可以通过二分 阅读全文
posted @ 2023-01-12 17:05 jeefy 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 扩展欧几里得算法详解 在了解扩欧之前我们应该先了解欧几里得算法 欧几里得算法 这是一个递归求最大公约数(greatest common divisor)的方法 $$ gcd(a, b) = gcd(b, a % b) $$ 可以通过一个类似的简单公式推导而来 好像叫做辗转相减法来着? $$ gcd( 阅读全文
posted @ 2023-01-12 17:04 jeefy 阅读(131) 评论(0) 推荐(0) 编辑