树形结构 —— 并查集

【概述】

并查集(Union-Find Set)是一种用于分离集合操作的抽象数据类型,其处理的是集合(set)之间的关系,一般处理的是图的连通分量,当给出两个的元素的一个无序对 (a,b) 时,需要快速合并(union) a 和 b 所在的集合,这期间需要反复查找(find)某元素的集合。

当遇到有关物与物之间的关系,且这种关系是可传递的问题时,可以优先尝试用并查集解决。

【例题】

1.基础应用

  1. 畅通工程(HDU-1232):点击这里
  2. A Bug's Life(HDU-1829):点击这里
  3. The Suspects(POJ-1611):点击这里
  4. 亲戚(信息学奥赛一本通-T1346):点击这里
  5. 家庭问题(信息学奥赛一本通-T1362):点击这里
  6. 团伙(信息学奥赛一本通-T1385):点击这里
  7. 亲戚(信息学奥赛一本通-T1389):点击这里
  8. 連結 / Connectivity(AtCoder-2159):点击这里

2.带权并查集

  1. Dragon Balls(HDU-3635)(统计问题)点击这里
  2. Cube Stacking(POJ-1988)(统计问题)点击这里
  3. 打击犯罪(信息学奥赛一本通-T1386)(统计问题)点击这里
  4. How Many Answers Are Wrong(HDU-3038)(区间问题)点击这里
  5. 食物链(POJ-1182)(种类问题)点击这里
    同题:食物链(信息学奥赛一本通-T1390):点击这里
  6. Rochambeau(POJ-2912)(种类问题)点击这里
  7. Zjnu Stadium(HDU-3047)(种类问题+向量计算)点击这里
  8. 搭配购买(信息学奥赛一本通-T1387)(带权并查集+01背包)点击这里

3.其他

  1. Tree(HDU-5060)(统计连通块中元素个数)点击这里
  2. Junk-Mail Filter(HDU 2473)(并查集删除操作)点击这里
  3. 格子游戏(信息学奥赛一本通-T1347)(块状并查集)点击这里
  4. Haybale Guessing (POJ-3657)(并查集+二分)点击这里
  5. Segment set(HDU-1558)(并查集+线段计算)点击这里
  6. Is It A Tree?(HDU-1325)(并查集+树的构建)点击这里
  7. 家谱(信息学奥赛一本通-T1388)(并查集+map)点击这里
  8. So Easy(2019 ACM-ICPC 徐州赛区网络赛 B)(并查集+unordered_map)点击这里
posted @ 2022-09-20 23:01  老程序员111  阅读(165)  评论(0编辑  收藏  举报