题意整理 给定一个集合包含1到n共n个数,从中选若干数出来组成新的集合。 规定一个限制数组,限制数组里的每一个数对不能同时出现在新集合中。 求这样的新集合有多少个。 方法一(二进制枚举) 1.解题思路 定义1个mask,表示1到n有没有出现过,若mask最低位为1,则表示1出现过,次低位为1,则表示2出现过。比如mask=101mask=101mask=101时,表示出现了1和3,对应集合[1,3][1,3][1,3]。 根据二进制位可以很容易判断某个数有没有出现过,从而枚举二进制位的时候,根据限制数组,看里面的数对是否同时出现过,如果同时出现,则当前集合不合法。 如果没有同时出现,则计...