这是一道经典的带权并查集例题。
我们定义权值s[i]表示节点i与根的关系:
0:和根是同一种动物
1:i能够吃根节点
2:i被根节点吃
这样定义的好处就是,在模3的意义下,各个节点之间的关系能够传递
(接下来本题解所讨论的范围都是在模3的意义下)
例如:
这样我们的权值s[i]就能满足一维向量加法了。
那么很显然,s[i]也满足一维向量减法:
a与b的关系就是s[a]-s[b]
再来考虑如何解此题:
若给出的X,Y未确定关系(X,Y拥有不同的根)