[BZOJ1854][Scoi2010]游戏(二分图匹配/并查集)

题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1854

分析:很裸的一道二分图匹配对吧,但是在hzwer的blog上看见神奇的并查集做法!

其实这题和bzoj1191惊人的相似!

把权值当作点,装备当作边,既然一个装备只能选择一个属性,也就是你要人为给边定向,箭头指到的点就表示你这个装备选的属性。

然后就和bzoj1191一样的了

如果一个集合里的点构成一个树,那么很显然,把那个权值最大的点作为根,除了根节点以外的点都可以选出,如果一个集合里有环,那么这个集合里所有节点都能选出

我们弄一个并查集

假设读入边(x,y)

如果find(x)==find(y),则find(x)可以被选出,p[find(x)]=1

如果find(x)!=find(y),合并它们,因为多加入了一条边,则权值小的那个根就也可以被选出啦!p[min(find(x),find(y))]=1

最后的结果的话,从1扫一遍,看看是不是都能表示,知道断在哪个地方,就输出那里

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