首先明确一下使用并查集能够解决的问题:给出n个人,给出n个人中哪两个人有关系,使得这些人分成一个个团体,问有多少个独立团体。
其次,总结一下并查集算法,并查集通过一个一维数组来实现,刚开始的时候,森林的每个点都是孤立的,然后通过一些关系,逐渐将这些树合并成一棵大树。
其实,合并的过程,就是“认爹”的过程。如果他们的祖宗是一个,直接返回,否则,将右端的人的祖宗归并到左端的人下面。
整个过程结束后,扫一遍看有多少个人的祖宗是他自己,那么就是有多少个独立团体了。
最后给出模板习题:http://www.cnblogs.com/wenzhixin/p/7391205.html