鉴于套与数字量,发现了一组数字不包括任何给定的(Given an amount of sets wi

2019-10-22 19:11发布

鉴于套的量的数字(例如0-20),我们被要求找到0-20不包括任何给定的套(它可以包括从一组数字中最大的一组数字,而不是整套)例如:设定最大编号为8,给出的套

{1,2}
 {2,3} 
 {7}
 {3,4}
 {5,6,4},

一个最大值的解决方案是集合{1,3,5,6,8}。 我是代表它作为一个图形,然后将其中引起的最大独立集问题的思考,但似乎只有从对仅由套,这不stand.Any想法?在此先感谢工作。

Answer 1:

使用位图的每一组,设置相应的位。 如果有小于32组的成员,你可以只使用一个uint32_t的。 全套夹杂物然后可以通过与特定的位图屏蔽掉所有成员(即,所有的集合的并集),并且然后使用异或与特定位图来计算。 其结果将是全部为0,如果一个子集,否则结果将是最大独立集的成员。



文章来源: Given an amount of sets with numbers, find a set of numbers not including any of the given