Cocoicobird
热爱永远可以成为你继续下去的理由

随笔分类 -  算法 / 基础算法学习

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