我已经给出了一些间隔I = {I(1), I(2), ..., I(m)}
。I(i) = [a_i, b_i] (1<=a_i<=b_i<=n)
您可能会认为间隔相互覆盖(对不起,我的英语很差),所以没有间隔,例如{[1,5], [3,6]}, {[2,5], [5,7]}
. 并且{[1,1], [2,2], ..., [n,n]}
必须包含在 I 中。
让我们假设C(i) = b_i - a_i + 1
。
我想找到{I(c_1), I(c_2), ..., I(c_k)}
彼此不重叠的,并且C(c_1) + C(c_2) + ... + C(c_k) = T. (1 <= T <= n)
.
我可以使用子集和问题找到O(n*T)
DP 解决方案,我认为它是 NP,但我不确定。我可以优化更多O(n*T)
吗?