这两对点连得通吗
问两件事:0 号和 5 号连不连通?1 号和 3 号呢?运行下面这段程序: 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 #include <algorithm&g
数出有几块
补全 blocks:对每个还没走过的点起一次遍历,把这一块的成员收集起来。输出一共有几块。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用 g++ -std=c+
把每块的成员列出来
blocks 已经写好。补全 main:块内成员用 - 连,块与块之间用 / 隔开,只输出这一行。 本节的图:七个点,边 0-1、0-2、1-3、2-4、3-4、5-6;邻接表 G 里每个点的邻居按编号从小到大排。 (本题用 g++ -st
遍历和并查集数块要一样
遍历版 blocks 已经写好。补全并查集版 uf_blocks:每条边合并两端,最后数有几个根。输出三样:遍历数出几块 / 并查集数出几块 / 是否相同(相同输出 结果一致,否则输出 结果不一致)。 本节的图:七个点,边 0-1、0-2、
BFS 为什么给出最短步数
无权图上 BFS 求出的步数一定最短,因为【0】。
DFS 能不能直接给最短步数(C++)
用 DFS 求最短步数【0】。
怎么把最短路径还原出来
第 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 编译。)