小竹把连通块程序里的 bool vis 换成整型数组 id,再配一个计数器 cnt:外层扫全图,遇到一块还没上过色的空地,先把 cnt 加 1,再从这格 DFS,把整片格子都写成 id[x][y] = cnt。全部扫完后,关于这张 id「色块图」,说法正确的是( )。
- A. 同一片里的格子写着同一个编号,不同的片编号不同——不用再跑一遍就知道每个格子属于哪一片
- B.
id[x][y]记的是「这个格子第几个被访问」,DFS 走得越深编号越大,相邻两格的编号一定相差 1 - C. DFS 过程中没法顺便上色,必须先把所有块数完,再回头一片一片补写编号
- D.
id数组和vis一样只能存 0 和 1,想区分几片就得开同样多个布尔数组