
bfs
文章平均质量分 69
相关总结及OJ练习
Ypuyu
Ypuyu
展开
-
[Hbfs] lc815. 公交路线(建图+多源bfs+bfs最短路+思维+好题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:815. 公交路线2. 题目解析好题,之前做过,但似懂非懂。问题抽象:每一个公交线路都是一个环,如果两环有公共点,则这两个环相连。本题是求最少经过几个公交车,从起点 S 到达终点 T,即等价于从起点经过最少的环到达终点。则可以将每个环看成一个点,其公共点就代表两点之间有边相连。在此依据题意,边为无向边。故,在此边权为 1,求起点到终点的最短距离,那么就是 bfs 最短路模型了。建图:如何建立点边之间的关系是本题建图一大难原创 2021-06-28 18:35:00 · 227 阅读 · 1 评论 -
[bfs] aw190. 字串变换(双向广搜+模板题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1107. 魔板相关:[bfs+图论] aw845. 八数码(建图+bfs最小步数模型+思维)[bfs] aw1107. 魔板(bfs最小步数模型+代码细节+代码功底+好题)2. 题目解析双向广搜适用于 bfs 最小步数模型,尤其是在状态数量为指数级别时,可以使用双向广搜极大优化时间,是一个非常好的剪枝手段。本题最多让搜 10 次,搜到了就返回最小步数,搜不到就返回无解即可。如果是直接从起点开始搜,搜到终点截止,假设每次有 K 个原创 2021-06-13 22:20:54 · 173 阅读 · 2 评论 -
[bfs] aw175. 电路维修(双端队列广搜+dijkstra理解+好题+难题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:175. 电路维修推荐题解!!!小呆呆大佬,详细解释2. 题目解析怎么说呢,看了半天才看懂…双端队列广搜主要解决边权只有 0,1 两种情况时最短路问题。看到大佬的题解,自己貌似没那么迷了,推荐题解!!!小呆呆大佬,详细解释bfs 保证了两段性、单调性就能够搜到最短路(详情可参考算导中的证明)。 双端队列广搜就是应用这一特点,将边权为 0 的加到队头,边权为 1 的加到队尾,依旧满足两段性、单调性!实质上本题和 dijkstra 算法大原创 2021-06-13 14:04:51 · 227 阅读 · 0 评论 -
[bfs] aw1107. 魔板(bfs最小步数模型+代码细节+代码功底+好题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1107. 魔板相关:[bfs+图论] aw845. 八数码(建图+bfs最小步数模型+思维)2. 题目解析bfs 最小步数模型,不像是在给定二维棋盘中进行最短路、最小步数求解。而是将整个棋盘当做一种状态,其经过特定操作到达另一个状态,最终到达给定状态即可。可以将其视为所有状态构成一张有向图,求有向图中的最短距离,这也是 bfs 的常见应用场景。另外本题需要输出最短路径的相应操作,且需要按照字典序最小的输出…输出最短路径:和迷宫问题一原创 2021-06-13 11:20:52 · 188 阅读 · 0 评论 -
[多源bfs] aw173. 矩阵距离(多源bfs+模板题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:173. 矩阵距离2. 题目解析一般来讲,bfs 求最短路、最短距离只有一个起点,那么我们初始化就只往队列中添加这个起点,让其分层拓展即可。但是,也可以有多个起点,且性质相同。等价来看就可以将多个起点初始全部放入队列,让其当做第一层,第 0 层可以视为一个虚拟源点,它连接到这些起点且花费为 0。 这个和图论中的概念相同。多源 bfs 就是初始化将起点(源点)全部加入队列,并进行相应初始化,剩余操作和普通 bfs 求最短路一致。时间复杂原创 2021-06-13 09:45:54 · 243 阅读 · 0 评论 -
[H记忆化搜索] lc403. 青蛙过河(记忆化搜索+dp+经典宽搜bfs)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:403. 青蛙过河相关题目:[记忆化搜索] 滑雪(模板题+记忆化搜索)2. 题目解析很不错的一道 dp 问题,但是普通的 二维 dp 在此会 TLE,故采用记忆化搜索来优化常数。也是一道很不错的记忆化搜索练习题目!思路:状态表示:f[i][j] 表示跳到第 i 个点, 且从第 i 个点往后跳的长度可以为 j 的所有方案的集合。f[i][j] = ture/false。在该种状态表示下,答案即为 f[n-1][0]~f[n-1][n] 中原创 2021-05-01 15:53:09 · 166 阅读 · 0 评论 -
[bfs+dfs] lg-P1141 01迷宫(bfs+染色法求连通块+模板题)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:P1141 01迷宫2. 题目解析染色法和并查集是求连通块个数的两大方法,本题练习下搜索和染色法求连通块,算作是一个模板题,搜索写的少,出了各式各样的问题。思路:所有连通格子的答案是一样的,为连通块的格子总数。本题有多组询问,故可以每次求出一个连通块中的所有答案。当询问是新的连通块的时候,此时该位置答案没求出,则 bfs 去求该块所在连通块的格子数量。否则,当询问是已经求过的连通块时,则直接输出即可。bfs 需要数组模拟队列,队列中的所原创 2021-04-09 19:26:43 · 431 阅读 · 0 评论 -
[bfs] 红红去小寨(bfs最短路+思维)
题目描述红红今天中午想去市中心吃饭,他决定坐公交车去。但是去公交车的时候红红决定练习一下空间魔法,穿梭时空现在红红到公交车的路是一条直线,然后他可以通过三种方式移动:向前走一个位置向后走一个位置空间移动,将自己的位置从 x 移动到 2 * x三种移动方式都需要 10 s但是红红希望能尽量减少体力的消耗, 所以他希望能以最短的时间到达公交车站输入有多组测试样例每组测试样例包括一个 n 和 k ( 0 < n, k<= 100000)n 表示红红目前的位置k原创 2021-03-22 09:30:23 · 147 阅读 · 0 评论 -
[图+拓扑排序+模板] aw848. 有向图的拓扑序列(bfs+拓扑排序+模板)
文章目录1. 拓扑排序 + bfs + 图1. 拓扑排序 + bfs + 图Biu只有有向图才有拓扑序,当有向图存在拓扑序且按照拓扑序排好之后,直观来讲它的拓扑序列点边指向都是从前指向后的,即拓扑序列中的每条边,起点都在终点的前面。只要有环,就不存在拓扑序。可证明,一个有向无环图一定存在一个拓扑序列,也称有向无环图为拓扑图。图中一个点的入度与出度,入度是指向自己的边的数量,出度是从自己出发指向别点的边的数量。入度为 0,则没有一条边指向我,那么所有入度为 0 的点都可以排到最前面,这也是拓扑排原创 2020-10-26 00:36:44 · 340 阅读 · 0 评论 -
[图bfs] aw847. 图中点的层次(bfs+图+模板题)
文章目录1. bfs + 图1. bfs + 图Biu思路:单向边所有长度都是 1,则说明可以采用 bfs 求解最短路开一个 d 数组来存储 1 号点到各个点的最短距离数组模拟队列,bfs 模板套上就行了注意下几个数组的初始化问题即可代码:#include <iostream>#include <queue>#include <algorithm>#include <cstring> using namespace std;原创 2020-10-26 00:01:11 · 156 阅读 · 0 评论 -
[bfs+图论] aw845. 八数码(建图+bfs最小步数模型+思维)
文章目录1. bfs + 八数码1. bfs + 八数码Biu这道题貌似叫做 数字华容道,是一个益智游戏, 4 * 4 的话我一般 30s 左右就搞定了哈哈。思路:将问题抽象为图论最短路问题初始状态看成一个节点将 x 与上下左右交换,将新状态看成新节点,即可以视为 在图中建了一条权值为 1 的边, 即宽搜就可以求到最短路状态定义是个难点,我们这采用将矩阵转化成字符串来唯一标识一个状态不能重复搜索一个状态, 可以使用 unordered_map 中标记,标记这种情况已经被使用过了注意下原创 2020-10-24 22:47:09 · 283 阅读 · 0 评论 -
[bfs] aw844. 走迷宫(模板题+bfs最短路模型+经典)
文章目录1. bfs + 走迷宫1. bfs + 走迷宫Biu边权相等,可用 bfs 求解最短路问题。这道题目算是最为经典的 bfs 求解最短路问题。bfs 搜索图,每次外拓一个,就可以搜到最短路。dfs 搜索图,肯定能搜到终点,但是不为最短路径:数组模拟的队列,bfs 模板还是很固定的,不多讲了。代码#include <iostream>#include <queue>#include <cstring>#include <algori原创 2020-10-24 18:29:31 · 821 阅读 · 0 评论