码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-07 22:41:10      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

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

对于一条边(x,y)

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

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

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

标签:

原文地址:http://www.cnblogs.com/wmrv587/p/4321019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!