从左上角洪泛改了几格

从 (0,0) 出发,把连着的 1 全改成 2。运行下面这段程序: 本节的网格(四行四列,1 是陆地,0 是海):1100 / 1001 / 0010 / 1000。 #include <algorithm> #include

开始练习 →

数出有几个岛

补全 islands:对每块还没走过的陆地起一次遍历,顺手数出岛的大小。dirs 是允许走的方向。输出四连通下的岛数。 本节的网格(四行四列,1 是陆地,0 是海):1100 / 1001 / 0010 / 1000。 (本题用 g++ -

开始练习 →

写一个洪泛填充

补全 flood:从 (si, sj) 出发,把连着的同色格子都改成 nw,返回改了几格。 本节的网格(四行四列,1 是陆地,0 是海):1100 / 1001 / 0010 / 1000。 (本题用 g++ -std=c++17 -O0

开始练习 →

四连通和八连通岛数不同

islands 已经写好,D4、D8 也已定义。补全 main:同一张网格跑两遍,把两个岛数拼起来输出(四连通在前)。 本节的网格(四行四列,1 是陆地,0 是海):1100 / 1001 / 0010 / 1000。 (本题用 g++ -

开始练习 →

拓扑序是什么

一张有向图的拓扑序指的是一个【0】。

开始练习 →

Kahn 算法怎么做

第 1 步:节点下面是入度 第 2 步:取出 0、1,下家入度减一 第 3 步:取出 2,下家入度减一 第 4 步:取出 3、4,下家入度减一 第 5 步:取出 5,下家入度减一 第 6 步:六门课全排出来了 0 2 3 5 1 4 0 2

开始练习 →

每个点的入度是多少

运行下面这段程序: 六门课的先修关系:0→2、1→2、2→3、2→4、3→5、4→5(邻接表 COURSE)。 #include <algorithm> #include <iostream> #include &l

开始练习 →

排出来的拓扑序

用 Kahn 算法,入度为 0 的按编号从小到大先入队。运行下面这段程序: 六门课的先修关系:0→2、1→2、2→3、2→4、3→5、4→5(邻接表 COURSE)。 #include <algorithm> #include

开始练习 →

先把入度算出来

补全 indeg:返回一个数组,第 i 项是 i 号点的入度。 六门课的先修关系:0→2、1→2、2→3、2→4、3→5、4→5(邻接表 COURSE)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

写一个 Kahn 拓扑排序

补全 kahn:入度为 0 的点先进队列,取出一个就把它指向的点入度各减一,减到 0 就入队。 六门课的先修关系:0→2、1→2、2→3、2→4、3→5、4→5(邻接表 COURSE)。 (本题用 g++ -std=c++17 -O0 编译

开始练习 →