[BZOJ1116][Poi2008]LCO(并查集)

题目:http://hzwer.com/3010.html

分析:注意这里无向边是对入度没有贡献的。

那么对于一个n个点的连通块而言,如果它是一颗树(n-1条边),那么把所有边全部从某个根开始向下指,最后还剩下根节点的入度是0,所以这种情况肯定是不行的。那么如果再加一条边,即这个连通块中有一个环,那么就完全可以把这个环的某个点作为根节点,并且这个根节点的入度也可以是1了。

所以综上,答案是TAK当且仅当图中的每个连通块里都有环

至于如何判断每个连通块中是否有环,可以用并查集啦。

对于一条边(x,y)

如果find(x)==find(y),则x所在的连通块有环

如果find(x)!=find(y),则合并两个连通块,且如果其中某个连通块有环则新的连通块也有环啦

posted @ 2015-03-07 22:09  Chellyutaha  阅读(134)  评论(0编辑  收藏  举报