给定一定数量的数字集合(例如0-20),我们被要求找到0-20中不包含任何给定集合的最大数字集合(它可以包括集合中的数字,但不是整套) 例如:设置最大数量8并给出集合
{1,2}
{2,3}
{7}
{3,4}
{5,6,4},
一个最大解是集合{1,3,5,6,8}。 我正在考虑将其表示为图形,然后将其引入最大独立集问题,但这似乎只有当集合仅由成对组成时才起作用,这是不成立的。任何想法?提前感谢。
答案 0 :(得分:0)
为每个集使用位图,设置适当的位。如果成员少于32个,则可以使用uint32_t。然后可以通过用特定位图掩蔽所有成员(即所有集合的并集),然后使用具有特定位图的xor来计算全集包含。如果是子集,结果将全部为0,否则结果将是最大独立集的成员。