一开始看解题报告,完全云里雾里中,之后自己突然灵光一现,用物理的思想把她给理解了,so easy!
(提示在看这篇文章之前请看我的《并查集的偏移向量的学习》的转载文章,我不想重复造轮子,还望谅解!)
所谓的偏移量,个人赶脚类似于物理中的参考点,由物体与参考点之间的距离推断出物体与物体之间的位移,引用到这里其实就相当于根是参考点,由结点与根的关系,推出结点与结点的关系(这样想一想高中学的物理也不是没有用),而位移是有正负的a->b与b->a是不同的;所以关系也有正向与反向之分,由a吃b,可以得到b被a吃;
aa与bb不相同说明由前面出现的条件不能推测出a与b有关系,而非a与b是捕食关系;
就可以通过a与b的关系建立起aa与bb间的关系;
aa->bb = aa->a + a->b + b->bb;
即aa->bb = (3-delta[a]+d-1+delta)%3 = delta[bb];
其中二式中的3-delta[a]是aa->a的关系,与a->aa是不同的(可类比与物理中的位移,是有方向的);
aa与bb相同说明由前面出现的条件能推测出a与b有关系,但不能直接看出,
要通过a,b分别与根的相对关系来推测出a与b的关系看与给出的关系是否矛盾;
a->b = a->aa + aa->b = a->aa + bb->b;
a-