合集-算法学习笔记
摘要:杂项 目录杂项代码规范卡常小技巧算法优化的本质做题思路小结根号优化记忆化搜索基于边的记忆化动态规划动态规划思考的方向动态规划优化小技巧关于树上问题的一点总结树上每一个点求答案关于树上左右肺,食道与胃的部分内容关于树上基于 dfn 序的种种操作关于树上倍增优化建图的问题关于树上背包加换根的复杂度关于树
阅读全文
摘要:扩展欧几里得算法详解 在了解扩欧之前我们应该先了解欧几里得算法 欧几里得算法 这是一个递归求最大公约数(greatest common divisor)的方法 可以通过一个类似的简单公式推导而来 好像叫做辗转相减法来着? $$ gcd(
阅读全文
摘要:逆元详解,欧拉函数及欧拉定理,线性求逆元,阶乘逆元的方法。
阅读全文
摘要:倍增 目录倍增查找 洛谷P2249重点变式练习快速幂ST表倍增更多的用法优化矩形查询优化建图优化 DP作者有话说 倍增,字面意思即”成倍增长“ 他与二分十分类似,都是基于”2“的划分思想 那么具体是怎么样,我们以一个例子来看 查找 洛谷P2249 依据题面,我们知道这是一个单调序列,当然可以通过二分
阅读全文
摘要:ST表 在RMQ(区间最值)问题中,著名的ST算法就是倍增的产物。ST算法可以在 的时间复杂度能预处理后,以 的复杂度在线回答区间 [l, r] 内的最值。 当然,ST表不支持动态修改,如果需要动态修改,线段树是一种良好的解决方案,是 \(O(n)\
阅读全文
摘要:并查集 并查集,Disjoint-Set,或者通俗一点,叫做MergeFind-Set,是一种可以动态维护若干个不重叠的集合,并支持集合之间的合并与查询的数据结构。 集体来说,并查集支持下列两个操作: Find,查询元素所属集合 Merge,将两个元素所属集合合并 一般来说,为了具体实现,我们将每一
阅读全文
摘要:树上最近公共祖先(LCA)三种求法:倍增,DFS+ST表,熟练剖分
阅读全文
摘要:树链剖分 树链剖分是一个很神奇,但是在树上可以完成一些区间操作问题 简单来说,就是把一棵树分成一条条的链,通过维护链上的信息来维护整棵树的信息 基础知识可以参考我的另外一篇博客:算法学习笔记(5): 最近公共祖先(LCA) 这里假设你已经掌握了上述博客中的所有相关知识,并清晰了其背后的原理 性质?发
阅读全文
摘要:# 二分图 [TOC] > Bipartite graph, 又称二部图 **定义**:如果一张无向图的个节点可以分成两个没有相同点的非空集合, ,且存在一种分法使得同一个集合内的点没有相连的边,那么这个图为**二分图**,, , 分别为此二分图的左部和右部。 **判定
阅读全文
摘要:网络流 网络流是一个博大精深的一个话题…… 箕(基)畚(本)知识 文章链接:基本知识 网络最大流 文章链接:网络最大流 上下界网络流 文章链接:上下界网络流 网络流模型篇 文章链接: 算法学习笔记(8.3): 网络最大流 - 模型篇
阅读全文
摘要:网络最大流算法 EK, Dinic, ISAP 详解
阅读全文
摘要:# 上下界网络流 [TOC] > 前置知识以及更多芝士参考下述链接 > 网络流合集链接:[网络流](https://www.cnblogs.com/jeefy/p/17050215.html) 上下界网络流是普通网络流的一种变体,对于网络流,我们不仅关注其流量的上界,下届同样有所体现。 题型大致有五
阅读全文
摘要:本文慢慢整理部分模型。 DAG 最小路径覆盖 经典的题目,经典的思想。 网络流常见的将图上的点拆为入点和出点,那么路径由若干 出 - 入 - 出 - 入 的循环构成。 于是在拆好的图上流一流即可。 [CTSC2008] 祭祀 典中祭 黑白染色 利用黑白染色将整个图变成一个二分图是网络流常见的套路,尤
阅读全文
摘要:# 扩展中国剩余定理 [TOC] 讲解扩展之前,我们先叙述一下普通的中国剩余定理 > “China Remain Theory” 也叫做**孙子定理** > > 难得是以中国命名的定理~~,谁敢不掌握~~ ## 中国剩余定理 > 中国剩余定理通过一种非常精巧的构造求出了一个可行解 > > 但是毕竟是
阅读全文
摘要:BSGS算法及其扩展算法 BSGS算法 所谓 Baby Step, Giant Step 算法,也就是暴力算法的优化 用于求出已知 , 且 为质数 时 的一个最小正整数解 下文中 指的是 $a,
阅读全文
摘要:原根 目录原根阶原根 求解快速幂将模意义下乘法转换为对于指数的加法其他小东西 此文相对困难,请读者酌情食用 在定义原根之前,我们先定义其他的一点东西 阶 通俗一点来说,对于 在模 意义下的阶就是 的最小正整数解
阅读全文
摘要:# 线性基 > 熟练掌握异或运算是食用本文的大前提,请读者留意 [TOC] ## 是什么? 是一种利用线性代数的知识,用于解决异或问题的一种手段(不能算作数据结构吧这) > 本文并不会涉及到线性代数。而是从OI基础算法思想的角度阐释线性基。尽管这可能违背了设计该方法的初衷。 一般来说,预处理的时间复
阅读全文
摘要:Manacher算法 形象的被译为马拉车算法 这个算法用于处理简单的回文字符串的问题。可以在 的复杂度内处理出每一个位置为中心的回文串的最长长度。 为了避免出现偶数长度的回文串,导致过多的分类讨论,我们预处理一下字符串。 例如:jeefy 我们可以预处理成 ^#j#e#e#f#y#
阅读全文