摘要: 种类并查集 普通的并查集维护的关系是: 朋友的朋友是朋友,即如果 A ~ B 是一对朋友, B ~ C 是一对朋友, 那么 A~C 是一对朋友。但如果我们需要维护这样一个关系“朋友的朋友是朋友,朋友的敌人是敌人,敌人的敌人是朋友”,普通的并查集就无能为力了。因此,需要引入种类并查集。 例题 动物王国 阅读全文
posted @ 2020-07-16 11:43 popozyl 阅读(980) 评论(0) 推荐(3) 编辑
摘要: 带权并查集 普通的并查集仅仅记录的是集合的关系,这个关系无非是同属一个集合或者是不在一个集合 带权并查集不仅记录集合的关系,还记录着集合内元素的关系或者说是集合内元素连接线的权值 普通并查集本质是不带权值的图,而带权并查集则是带权的图 考虑到权值就会有以下问题: 每个节点都记录的是与根节点之间的权值 阅读全文
posted @ 2020-07-16 10:30 popozyl 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 常规并查集 模板 #define Maxsize 100+1 int f[Maxsize]; void init(int n){ for(int i = 1; i <= n; i++) f[i] = i; } int find_f(int a){ if(f[a] == a){ return a; } 阅读全文
posted @ 2020-07-16 08:18 popozyl 阅读(132) 评论(0) 推荐(0) 编辑