最少集合覆盖问题

如果有帮助,点一点关注@_@

题目要求

有n个元素,m个集合,每一个集合里的元素都是这n个元素的一部分,集合之间相互独立,可能有交集也可能没有,求解最少用几个集合可以将元素完全覆盖

贪心算法

一个集合的价值有两点:

  • 选了这个集合后,有多少个原来没被覆盖的元素被覆盖了,这个值刚开始就是每个集合元素的个数。
  • 选了这个集合后,会使其他可选集合的价值降低多少,这个降低数就是两个集合之间的交集的元素个数。

每次选取价值最大的集合覆盖,显然这个选择会对尚未使用的集合的价值产生影响,更新其他尚未使用的价值,重复此操作

posted @ 2020-05-16 16:21  AisingioroHao  阅读(196)  评论(0)    收藏  举报