给定一组整数集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的解决方案。
应该在合理的时间内使用什么算法来解决这个问题?
输入数据的一些限制如下:
答案 0 :(得分:1)
看一下cs.stackexchange中的一个问题,似乎问这个问题。
这实际上是一个Hitting Set问题。这是一个NP难题,但是考虑到预期输入的一些信息,通常可以进行一些调整。