【发布时间】:2019-10-12 15:28:14
【问题描述】:
我试图解决以下问题。
我们得到 N 和 A[0]
N <= 5000
A[0] <= 10^6 and even
if i is odd then
A[i] >= 3 * A[i-1]
if i is even
A[i]= 2 * A[i-1] + 3 * A[i-2]
element at odd index must be odd and at even it must be even.
我们需要最小化数组的总和。
我们得到一个 Q 数
Q <= 1000
X<= 10^18
我们需要确定是否有可能从我们的数组中得到 subset-sum = X。
我尝试过的,
创建一个最小和数组很容易。只需遵循方程式和约束即可。
我所知道的子集和的方法是动态编程,它具有时间复杂度 sum*sizeof(Array) 但由于 sum 可以高达 10^18,因此该方法不起作用。
我是否缺少任何方程关系?
【问题讨论】:
-
您可能会错过序列达到真正大值的速度。 (我相信我在过去几个月内看到了这个问题的答案,但我没有指向它的链接。)
标签: arrays algorithm data-structures subset-sum