题目:http://poj.org/problem?id=1182
题目大意:动物分为三类 ABC,A吃B, B吃C,C吃A。给出N个动物及动物之间的关系,判断哪些话是假的。
考查点:并查集
思路:首先要明白作为并查集,那么一颗树的含义是什么?并查集中主要记录的是每个点与他的父亲的关系(他的父亲是谁,他和父亲啥关系)。这个题也是在说动物间的关系,那么我们就不妨让两个点在同一棵树中表示这两个点的关系可以确定,节点和父亲的关系表示两个动物间的相对关系。
提交情况 Accepted 1次
经验 : 并查集的本身结构就是
}
一定要灵活的运用这两个信息。
收获 : 对并查集有了更深的认识, 一直以为并查集只是记录每个点的父亲是谁,没想到最初的并查集还是记录节点到根的距离的
AC code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXN 50001
struct NODE{
};
NODE animal[MAXN];
void init(int n){
}
int find(int x){
}
void Union(int fx, int fy, int x, int y, int excursion){
}
int main(){
}