修好方向数组
场景:~/work/graph/isl.cpp 数岛屿,sample.txt 里明明是一个 U 形的岛,它却数出了 2 个。 任务:找出方向数组里写错的那一项并修好(上下左右四个方向)。make 编译后用 sample.txt 自测;che
写数出有几个岛
场景:~/work/graph/count.cpp 要输出网格里岛的个数(上下左右相连算一个岛),count_islands 还没写。 任务:补全 count_islands。make 编译后用 sample.txt 自测;check 会用
两种最短差在哪
无权图和带权图上说的「最短路」,区别是【0】。
什么时候可以直接用 BFS
第 1 步:从 0 到 4 有两条路 第 2 步:两段那条:1 + 9 第 3 步:三段那条:2 + 3 + 1 第 4 步:段数多,反而更近 0 1 3 2 4 2 1 3 9 1 求最短路时能直接用 BFS 的条件是【0】。
带权图上要换成什么
边的权重不一样时,求最短路要换成【0】。
松弛一条边是什么意思
最短路算法里说的「松弛」是指【0】。
单源最短路算出的是什么
跑完一次单源最短路,直接得到的是【0】。
两种走法各要走多远
从 0 号到 4 号有两条路:0-2-4(只走 2 段)和 0-1-3-4(走 3 段)。各段长度是 0-1:2 0-2:1 1-3:3 2-4:9 3-4:1。运行下面这段程序,看两条路各多长: #include <algorith
Dijkstra 每一轮做什么
第 1 步:起点 0:距离 0 第 2 步:松弛 0 的边:得 2 和 1 第 3 步:取出最近的 2 号 第 4 步:再取 1 号:3 号变成 5 第 5 步:取 3 号:4 号改小成 6 第 6 步:全部定死,最短距离到手 0 1 3
为什么取出来就能定死(C++)
Dijkstra 取出一个点后就不再改它,因为【0】。