
并查集
Alphacoo
这个作者很懒,什么都没留下…
展开
-
AcWing 238. 银河英雄传说(C++)
题目链接 分析 可以把每艘战舰进入队列时的顺序作为 属性值,表示为这艘战舰到队列头部战舰的距离,用d[i]表示i号战舰到头部战舰的距离,每次把一个战舰队列接到另一个战舰队列的尾部时, 把前者头部战舰的d[i]改为后者整个队列的长度, 然后后者队列长度 再加上前者队列长度 代码 (带权并查集) #include <iostream> #include <algorithm> #include <cstring> using namespace std; const in原创 2020-11-10 14:49:25 · 564 阅读 · 0 评论 -
AcWing 837. 连通块中点的数量(C++)
837. 连通块中点的数量 分析 这题是并查集的典型应用,并查集可以用来维护无向图的连通块 这题的三种操作可以这样理解: 1.要求把两个点连起来,本质是把这两个点放到同一个集合中 2.查询两个点是否在同一个集合中,本质是找这两个点所在集合的根节点是否相等 3.查询某个点所在的集合的点的总数量 因为这题有些操作是重复使用的,所以需要把功能独立出来,也就是写成函数 函数1:初始化并查集,同时初始化每个集合的点的总数量 函数2:并查集函数 函数3:判断两个点是否在同一个集合 函数4:合并两个点所在的集合 代码 #原创 2020-11-09 10:42:44 · 330 阅读 · 0 评论