写一个 unite

补全 unite:把两个点所在的两块合成一块。四条关系全合并完之后,输出阿岚和南风是不是同一块。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用并查集数出有几块

合并完所有关系之后,补全代码数出一共有几块。做法:每个人各自 find 一次,数出有几个不同的根。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两个人到底连不连得通

补全 connected:判断两个人在不在同一块里。把两个判断拼起来输出:阿岚和南风、阿岚和北辰,中间用 / 隔开。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

一个够用的图至少要有什么

第 1 步:数一数这张图断成几块 第 2 步:从第一个没走过的人出发 第 3 步:一次遍历染完一整块 第 4 步:还有没走过的:再染一块 岚 满 泰 风 辰 手写一张够用的图,至少要有【0】。

开始练习 →

遍历和并查集各解决什么(C++)

图遍历和并查集,分工是【0】。

开始练习 →

这张图有几个顶点几条边

运行下面这段程序: #include <iostream> #include <string> #include <utility> #include <vector> using names

开始练习 →

第一步把邻接表建出来

最终作品第一步:写出 build_adj(无向边两头各记一次)。建好之后输出阿泰有几个邻居。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步接上遍历

加上 BFS,把两个起点的结果拼起来输出:从阿岚出发能到几个、从北辰出发能到几个,中间用 / 隔开。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第三步接上并查集

写出 find_root(路径压缩)和 unite,把四条关系全合并进去。输出一共有几块。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第四步两种办法互相印证

遍历数出来的块数,应该和并查集数出来的完全一样。把两个结果拼起来输出(用 / 隔开):遍历数出的块数 / 并查集数出的块数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →