怎么把最短路径还原出来
第 1 步:BFS 算出每个点的步数 第 2 步:终点 4:步数 2 第 3 步:4 是从 2 走过来的 第 4 步:2 是从 0 走过来的 第 5 步:倒着读:0 → 2 → 4 0 1 3 2 4 5 6 0 1 2 1 2 BFS 除
从 0 到各点各要几步
七个点,走不到的记成 -1。运行下面这段程序: 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 #include <algorithm> #include &l
写 BFS 求最短步数
补全 dist:返回一个数组,第 i 项是从 s 到 i 号点的最少步数,走不到记 -1。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用 g++ -std=c+
0 到 4 最少几步
补全 dist,输出 0 号到 4 号的最少步数。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用 g++ -std=c++17 -O0 编译。)
把这条最短路径还原出来
补全 bfs_path:BFS 时记下每个点的父亲,最后从终点倒着回溯。输出 0 到 4 的路径(用 / 连)。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用
DFS 找到的路有多长
bfs_path 已经写好。补全 dfs_path:钻到底,找到 t 就一路返回 true,没找到要把自己从 path 里弹出来。把两条路的边数拼起来输出(DFS 在前)。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-
网格图里的边是什么
把一张网格当成图,两格之间有边的意思是它们【0】。
数岛屿的办法
第 1 步:1 是陆地,0 是海 第 2 步:第 1 块陆地:起一次遍历 第 3 步:第 2 块陆地:起一次遍历 第 4 步:第 3 块陆地:起一次遍历 第 5 步:第 4 块陆地:起一次遍历 第 6 步:起了几次,就有几个岛 1 1 0
洪泛填充在做什么(C++)
洪泛填充(flood fill)做的事情是【0】。
这张网格有几个岛
上下左右相邻算同一个岛。运行下面这段程序,看岛数 / 最大的岛多大 / 陆地总格数: 本节的网格(四行四列,1 是陆地,0 是海):1100 / 1001 / 0010 / 1000。 #include <algorithm>