随笔分类 - 基础算法学习
摘要:Bellman-Ford算法
阅读全文
摘要:一、换根树形动态规划 换根树形动态规划又称二次扫描,相较于一般的树形动态规划,有如下特点: 以树上不同的节点为根,其解不同 求解答案时,不能只求解某一点的信息,而是求解所有点的信息 无法通过一次搜索来求解答案 二、例题 1.[Daimayuan Online Judge.距离和] 题目描述 有一棵
阅读全文
摘要:一、树形动态规划 基于树这个数据结构的一类动态规划问题。那么如何判断一个题目是否属于树形动态规划类型,即判断数据结构是否为树以及是否符合动态规划的条件。 树形动态规划的特殊性:无环、 不会重复,具有明显且严格的层级关系。 二、例题 1.[Daimayuan Online Judge.统
阅读全文
摘要:一、简述 记录一下组合数的求解问题。 二、组合数 1.[AcWing885.求组合数I]-递推 题目描述 给定 组询问,每组询问给定两个整数 , ,请你输出 的值。 输入格式 第一行包含整数 。 接下来 行,每行包含一组 $a
阅读全文
摘要:一、简述 记录一下关于二叉树的最近公共祖先问题以及朴素算法。 二、二叉树的最近公共祖先 Daimayuan Online Judge.二叉树的最近公共祖先 题目描述 给你一棵 个节点的二叉树,节点的编号为 到 ,二叉树的根为 号节点。 读入 ,请求出
阅读全文
摘要:一、简述 本节主要介绍一下有关最小生成树的两个算法,即 算法和 算法,适用于无向图。 二、Prim 算法 基本思想 算法有一个适用于稠密图的朴素版,时间复杂度是 ,还有一个适用于稀疏图的堆优化版本,时间复杂度为 ,不
阅读全文
摘要:一、简述 本节主要介绍一下 算法。该算法主要用于解决单源最短路问题,且该问题中的边权不为负数。 二、Dijkstra算法 基本思想:我们假定有一张没有负权的图,该图如下 数组的元素 表示从起点到 的距离,初始化为正无穷。假设起点为 $1
阅读全文
摘要:一、简述 本节介绍一下拓扑排序的应用以及模板。 二、拓扑序 有向无环图,又称拓扑图,而拓扑图一定对应着拓扑序,比如有向图 ,前者指向后者,对应于拓扑序 。基本模板类似 ,如下 初始化队列 queue 所有入度为0的点入 queue whi
阅读全文
摘要:一、简述 本节介绍一下单调队列及其一些应用。 二、单调队列 单调队列就是队列元素满足单调性的一类数据结构,主要用于解决滑动窗口类的问题,即维护一个区间的最值,在应用时时间复杂度是 的。 一般的,如果我们维护区间的最小值,那么维护的队列是单调递增的;如果是维护区间的最大值,那么队列是单调
阅读全文
摘要:一、简述 本节介绍一下单调栈以及单调栈的一些应用。 二、单调栈 所谓单调栈,就是具有存储的元素呈现某种单调性的栈。 比如:从栈底元素到栈顶元素是单调递减的,就是一个单调递减栈。 下面我们引入几道题目来更好的理解一下。 三、例题 1.[AcWing830.单调栈] 题目描述 给定一个长度为 的
阅读全文
摘要:一、简述 记录有关拓展欧几里得算法。 二、拓展欧几里得算法 裴蜀定理:若 是整数,且 和 的最大公约数 ,那么任意的整数 , 一定是 的整数倍。特别地,一定存在整数 使得 。 对于任意
阅读全文
摘要:一、简述 本文章主要介绍欧拉函数以及快速幂的相关算法。 二、欧拉函数 定义 中与 互质的数的个数被称为欧拉函数,记为 。若在算数基本定理中, ,则:$\phi(N)=N\times\frac{p_1−1}{
阅读全文
摘要:一、简述 本文章主要介绍有关约数的基础算法。 二、约数 约数,又称因数。整数 除以整数 ( ≠ 0) 除得的商正好是整数而没有余数,我们就说 能被 整除,或 能整除 。 称为 的倍数, 称为 的约数。 三、试除法求约数 设
阅读全文
摘要:一、简述 本文章主要介绍有关质数的基础算法。 二、质数 质数和合数是针对所有大于1的自然数来定义的,小于等于1的整数既不是质数也不是合数。 质数的因子只有1和它本身。 三、质数的判定——试除法 设一个数 n,因为质数的因子只有1和它本身,我们可以使用枚举从2 ~ n-1的方式,判断其中的数是否为 n
阅读全文
摘要:一、简述 本文章主要介绍有关二分图的两个基础算法。 二、二分图 二分图,它的端点可以被划分为两个集合,每个集合内部不含有边,边的两个端点分别位于两个集合。 关于二分图有一个性质,即一个图是二分图当且仅当该图不含有奇数环(一个环的边数为奇数,则这个环称为奇数环)。 三、染色法 模板题AcWing860
阅读全文