Java教程

Split Into Two Sets

本文主要是介绍Split Into Two Sets,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

传送门

题意:
P最近准备多米诺骨牌,每张多米诺骨牌包含两个数字从1 ~ n, 他能把多米诺骨牌分配给两个集合使得每个集合中的元素都是不相同的吗? 每张多米诺骨牌只能去一个集合


思路:
先考虑特殊的,如果牌的数字重复,一个数字出现 >= 3, 牌的数量是奇数,这些就是不可能的,而且每个数字1 ~ n都必须出现2次,有了以上的条件就可以发现剩下的数字必然构成的都是环,而且只要每个环的数字个数为偶数个,那就是YES,否则就是NO,问题就转换为求求一个个集合环的数量,这个可以用并查集进行实现,详细看代码


总结:
并查集可以判断环,可以求一个联合集合的数字数量,收获很大

这篇关于Split Into Two Sets的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!