一、思维导图 二、重要概念 1.DFS 时间复杂度为 O(n+e) 。 2.BFS 时间复杂度为 O(n+e) 。 3.最小生成树 1)Prim算法 时间复杂度为 O(n n) ,所以更适用于 稠密图 。 2) Kruskal算法 时间复杂度为 O(elog2e) ,所以更适用于 稀疏图 。 4.最 ...
分类:
其他好文 时间:
2020-05-17 21:45:57
阅读次数:
110
学习进度表 周数 学习内容 新增代码 知识总结 第9周 队列的定义与存储 50 知道了队列的定义 第10周 树的基本概念 二叉树的遍历 60 了解了二叉树的遍历方式 及代码运用 第11周 哈夫曼树编码 0 哈夫曼树编码构造过程 第12周 图的基本概念与存储 65 图的存储结构及代码运用 ...
分类:
其他好文 时间:
2020-05-17 19:12:50
阅读次数:
47
现在你总共有 n 门课需要选,记为 0 到 n 1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你只要返回一种就可以 ...
分类:
其他好文 时间:
2020-05-17 01:29:17
阅读次数:
95
递归实现结构很好记,上来写两递归,递归左子树,递归右子树。 前序遍历,访问节点(打印节点)在两个递归前面——中、左、右; 中序遍历,访问放递归中间——左中右; 后序遍历,先两递归,最后才访问——左、中、右。 1)先序遍历void preorder(BiTree T){ if (T != NULL) ...
分类:
其他好文 时间:
2020-05-14 15:51:55
阅读次数:
66
大致题意: 求从A楼致B楼要按几次按钮,若到达不了,则输出 1, 第i层上下的楼层数为k[i]层。 基本思路: ~~毒瘤Luogu官方机器人,做梦都能梦到题目~~ 先从A层楼开始~~猛虎下山、潜龙出渊、气吞山河、排山倒海般的~~进行bfs操作, 若是到了B层楼则输出步数,若是队列都出尽了还没到就说明 ...
分类:
其他好文 时间:
2020-05-14 00:53:52
阅读次数:
72
前言 重中之重的一个知识!也是算法设计中非常非常基础的一部分,OI 这么多年一直陪伴在身边,是大部分不能得到正解只求部分分时的最佳选择,通常我们称之为“暴力搜索”,它写起来不伤脑筋,能够处理数据量小的情况,而且有时灵机一动再优化一下,甚至能得到更可观的分数,所以其实就算对算法、理论或者数据结构不太熟 ...
分类:
其他好文 时间:
2020-05-14 00:53:21
阅读次数:
79
大致题意: 计算出在某个点上的马走到其他点上最少要走几步, 走不到的点标记为 1,走到的点标记为最少的步数, 马走“日”字。 基本思路 嗯…直接bfs一波带走就好了。 从原点走“日”字,到一处若没有被标记则标记上, bfs完的时候若是发现此点没有被标记就标记为 1。 Code: ...
分类:
其他好文 时间:
2020-05-13 23:22:50
阅读次数:
54
回溯算法就是个多叉树的遍历问题,关键就是在前序遍历和后序遍历的位置做一些操作,算法框架如下: result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, ...
分类:
编程语言 时间:
2020-05-13 00:38:31
阅读次数:
81
A 启发式搜索 其实是两种搜索方法的合成( A 搜索算法 + 启发式搜索),但要真正理解A\ 搜索算法,还是得先从启发式搜索算法谈起。 何为启发式搜索 启发式搜索算法有点像广度优先搜索,不同的是,它会优先顺着有启发性和具有特定信息的节点搜索下去,这些节点可能是到达目标的最好路径。我们称这个过程为最优 ...
分类:
其他好文 时间:
2020-05-11 18:59:01
阅读次数:
74
P1332 血色先锋队 + 题目链接: "https://www.luogu.com.cn/problem/P1332" 涉及知识点: + bfs solution: + $这个题直接用bfs即可,前几天出过bfs的题了,巩固一下$ + $在一开始将a个传染源读入队列,同时记录感染时间为0$ + $ ...
分类:
其他好文 时间:
2020-05-11 13:25:59
阅读次数:
60