随笔分类 -  基础算法学习

摘要:Bellman-Ford算法 阅读全文
posted @ 2023-10-28 20:34 Cocoicobird 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Floyd算法 阅读全文
posted @ 2023-10-15 19:08 Cocoicobird 阅读(22) 评论(0) 推荐(0) 编辑
摘要:一、换根树形动态规划 换根树形动态规划又称二次扫描,相较于一般的树形动态规划,有如下特点: 以树上不同的节点为根,其解不同 求解答案时,不能只求解某一点的信息,而是求解所有点的信息 无法通过一次搜索来求解答案 二、例题 1.[Daimayuan Online Judge.距离和] 题目描述 有一棵 阅读全文
posted @ 2023-10-09 11:36 Cocoicobird 阅读(32) 评论(0) 推荐(0) 编辑
摘要:一、树形动态规划 基于树这个数据结构的一类动态规划问题。那么如何判断一个题目是否属于树形动态规划类型,即判断数据结构是否为树以及是否符合动态规划的条件。 树形动态规划的特殊性:无环、DFS 不会重复,具有明显且严格的层级关系。 二、例题 1.[Daimayuan Online Judge.统 阅读全文
posted @ 2023-10-06 22:47 Cocoicobird 阅读(36) 评论(0) 推荐(0) 编辑
摘要:区间动态规划 阅读全文
posted @ 2023-07-29 23:39 Cocoicobird 阅读(54) 评论(0) 推荐(0) 编辑
摘要:动态规划概述 阅读全文
posted @ 2023-07-22 11:38 Cocoicobird 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一、卡特兰数 卡特兰数:C2nnC2nn+1=C2nnn+1。 卡特兰数满足递推公式:设 Cn=C2nnn+1C1=1Cn=Cn14n2n+1。 模板题[AcW 阅读全文
posted @ 2023-03-19 20:49 Cocoicobird 阅读(101) 评论(0) 推荐(0) 编辑
摘要:一、简述 记录一下组合数的求解问题。 二、组合数 1.[AcWing885.求组合数I]-递推 题目描述 给定 n 组询问,每组询问给定两个整数 ab,请你输出 Cab mod(109+7) 的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一组 $a 阅读全文
posted @ 2023-03-19 20:11 Cocoicobird 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一、简述 记录一下关于二叉树的最近公共祖先问题以及朴素算法。 二、二叉树的最近公共祖先 Daimayuan Online Judge.二叉树的最近公共祖先 题目描述 给你一棵 n 个节点的二叉树,节点的编号为 1n,二叉树的根为 1 号节点。 读入 u,v,请求出 u 阅读全文
posted @ 2023-03-17 16:52 Cocoicobird 阅读(19) 评论(0) 推荐(0) 编辑
摘要:一、简述 本节主要介绍一下有关最小生成树的两个算法,即 Prim 算法和 Kruskal 算法,适用于无向图。 二、Prim 算法 基本思想 Prim 算法有一个适用于稠密图的朴素版,时间复杂度是 O(n2),还有一个适用于稀疏图的堆优化版本,时间复杂度为 O(mlogn),不 阅读全文
posted @ 2023-03-08 19:08 Cocoicobird 阅读(21) 评论(0) 推荐(0) 编辑
摘要:一、简述 本节主要介绍一下 Dijkstra 算法。该算法主要用于解决单源最短路问题,且该问题中的边权不为负数。 二、Dijkstra算法 基本思想:我们假定有一张没有负权的图,该图如下 dist 数组的元素 dist[i] 表示从起点到 i 的距离,初始化为正无穷。假设起点为 $1 阅读全文
posted @ 2023-03-07 18:03 Cocoicobird 阅读(41) 评论(0) 推荐(0) 编辑
摘要:一、简述 本节介绍一下拓扑排序的应用以及模板。 二、拓扑序 有向无环图,又称拓扑图,而拓扑图一定对应着拓扑序,比如有向图 (1,2),(2,3),(1,3),前者指向后者,对应于拓扑序 1,2,3。基本模板类似 BFS,如下 初始化队列 queue 所有入度为0的点入 queue whi 阅读全文
posted @ 2023-03-06 23:00 Cocoicobird 阅读(13) 评论(0) 推荐(0) 编辑
摘要:一、简述 本节介绍一下单调队列及其一些应用。 二、单调队列 单调队列就是队列元素满足单调性的一类数据结构,主要用于解决滑动窗口类的问题,即维护一个区间的最值,在应用时时间复杂度是 O(n) 的。 一般的,如果我们维护区间的最小值,那么维护的队列是单调递增的;如果是维护区间的最大值,那么队列是单调 阅读全文
posted @ 2023-03-03 18:42 Cocoicobird 阅读(93) 评论(0) 推荐(0) 编辑
摘要:一、简述 本节介绍一下单调栈以及单调栈的一些应用。 二、单调栈 所谓单调栈,就是具有存储的元素呈现某种单调性的栈。 比如:从栈底元素到栈顶元素是单调递减的,就是一个单调递减栈。 下面我们引入几道题目来更好的理解一下。 三、例题 1.[AcWing830.单调栈] 题目描述 给定一个长度为 N阅读全文
posted @ 2023-03-02 22:33 Cocoicobird 阅读(15) 评论(0) 推荐(0) 编辑
摘要:一、简述 记录有关拓展欧几里得算法。 二、拓展欧几里得算法 裴蜀定理:若 a,b 是整数,且 ab 的最大公约数 gcd(a,b)=d,那么任意的整数 x,yax+by 一定是 d 的整数倍。特别地,一定存在整数 x,y 使得 ax+by=d。 对于任意 阅读全文
posted @ 2023-02-14 13:56 Cocoicobird 阅读(27) 评论(0) 推荐(0) 编辑
摘要:一、简述 本文章主要介绍欧拉函数以及快速幂的相关算法。 二、欧拉函数 定义 1N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。若在算数基本定理中,N=p1a1p2a2pmam,则:$\phi(N)=N\times\frac{p_1−1}{ 阅读全文
posted @ 2022-10-03 15:50 Cocoicobird 阅读(86) 评论(0) 推荐(0) 编辑
摘要:一、简述 本文章主要介绍有关约数的基础算法。 二、约数 约数,又称因数。整数 a 除以整数 b(b ≠ 0) 除得的商正好是整数而没有余数,我们就说 a 能被 b 整除,或 b 能整除 aa 称为 b 的倍数,b 称为 a 的约数。 三、试除法求约数 设 阅读全文
posted @ 2022-09-14 23:39 Cocoicobird 阅读(77) 评论(0) 推荐(0) 编辑
摘要:一、简述 本文章主要介绍有关质数的基础算法。 二、质数 质数和合数是针对所有大于1的自然数来定义的,小于等于1的整数既不是质数也不是合数。 质数的因子只有1和它本身。 三、质数的判定——试除法 设一个数 n,因为质数的因子只有1和它本身,我们可以使用枚举从2 ~ n-1的方式,判断其中的数是否为 n 阅读全文
posted @ 2022-09-11 00:48 Cocoicobird 阅读(91) 评论(0) 推荐(0) 编辑
摘要:一、简述 本文章主要介绍有关二分图的两个基础算法。 二、二分图 二分图,它的端点可以被划分为两个集合,每个集合内部不含有边,边的两个端点分别位于两个集合。 关于二分图有一个性质,即一个图是二分图当且仅当该图不含有奇数环(一个环的边数为奇数,则这个环称为奇数环)。 三、染色法 模板题AcWing860 阅读全文
posted @ 2022-09-08 23:51 Cocoicobird 阅读(71) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示