给定一组整数集S,找到最小可能的整数X集,以便S中的每个集合也包含至少一个整数X

时间:2015-11-24 07:35:53

标签: algorithm

给定一组整数集S,找到可能的最小整数X集,以便S中的每个集合都包含至少一个X整数。

最小集合由具有最低基数(最少元素数量)的集合定义,如果有多个集合具有相同的最小基数,则最小集合是按字典顺序排列的集合(例如,( 1,3,6)之前(1,4,5))

例如,如果S是:

{
(4,7)
(7,10)
(4, 15, 18)
(7, 10, 18)
(4, 7, 15, 18)
(7, 10, 18)
}

X的最小可能基数为2.按字典顺序排序的X的可能集合为基数2:(4,7),(4,10),(7,15),(7,18)。由于(4,7)最早是X的解决方案。

应该在合理的时间内使用什么算法来解决这个问题?

输入数据的一些限制如下:

  • 每个整数都介于1到20之间
  • S最多包含100套
  • 每个整数在S
  • 中至少有2组
  • 整数集将始终按递增顺序

1 个答案:

答案 0 :(得分:1)

看一下cs.stackexchange中的一个问题,似乎问这个问题。
这实际上是一个Hitting Set问题。这是一个NP难题,但是考虑到预期输入的一些信息,通常可以进行一些调整。