http://poj.org/problem?id=1182 一个利用并查集的经典题目. 思路:在网上看到别人的思路,觉得方法还是挺不错的. 首先,开辟一个3*n的数组belg,用来存b和c的关系,在belg[c+m]存,c是被谁吃的,belg[c+2*m]存b是吃谁的. bool judge(int x,int y) {return (Find(x)==Find(y));} 如果judge(b,c+m)和 judge(b,c+2*m)都为假的话,那么可以说明,b和c是在同类. 然后合并b,c.…