【发布时间】:2015-06-12 03:01:53
【问题描述】:
假设我们只有整数,其值在1 到N 的范围内。接下来我们将它们分成K-element 多组。你如何找到这样的集合,它包含尽可能少的多集合,而这个多集合的总和包含从1 到N 的所有数字?如果有歧义,答案将是任何符合条件的集合(首先找到)。
例如,我们有N = 9、K = 3
(1,2,3)(4,5,6)(7,8,8)(8,7,6)(1,9,2)(4,4,3)
包含从1 到9 的所有数字的最小多集数等于4,可以是(1,2,3)(4,5,6)(7,8,8)(1,9,2) 或(1,2,3)(4,5,6)(8,7,6)(1,9,2)。
有什么有效的算法可以找到这样的集合吗?
PS
写完答案后,我发现了另一个 4 元素集:(4,5,6)(1,9,2)(4,4,3)(7,8,8) 或 (4,5,6)(1,9,2)(4,4,3)(8,7,6) 但正如我所说的算法找到任何最小集都可以。
【问题讨论】:
标签: algorithm