扩展域并查集

拓展域并查集解决了一种多个有相互关系的并查集,放在一起考虑的问题。

一般的并查集应用一般就是判断在不在一个集合,拓展域并查集讲的是多个集合之间有相互关系,一般为相互排斥关系,判断是否在一个集合等。

首先对与最简单的并查集来说,如果两个是同一类,那么就p[pa]=pb对吧,但是对于两个相互排斥类的怎么办呢,这就涉及到拓展与并查集了,首先想法就是建立两个并查集,但是怎么把两个并查集联系起来呢?拓展个体。

这里的拓展个体是什么意思呢,一个个体我们要拆成多个,比方说两个集合存在队立关系,那么对于一个个体a,我们假设存在一个个体a+n ,a和a+n这两个是处于对立关系的,所以当我们说a和b对立的时候,意思就是在说,a+n和b在同一并查集,b+n和a在同一并查集,当我们说,a和b是同类的时候,那么也就是说a和b属于一个并查集,且a+n和b+n属于一个并查集

这样就建出了多个并查集,解决了多个集合的相互关系。

posted @ 2021-03-04 21:36  Dazzling!  阅读(458)  评论(0编辑  收藏  举报