我正在经历一些问题,我在这里发现了一个问题。它需要动态规划算法。我试图想出一个复发,但我不认为它总是会给出正确的结果。如果我们不考虑限制K,那么很容易出现找到最小时间的递归,我认为这也可以使用贪婪的方法来完成,如果我错了,请纠正我。但是对于限制K我们需要考虑到,在后期我们可能会考虑使用机器A的值i,但它可能已经完成了K限制。所以这需要回溯。我认为我们可能需要多保留一个维度来考虑这一点。但是我想不出如何使用额外的维度来包含这种情况。请提供一些帮助。
给你2台机器。您必须执行 N 项工作。作业 i 在机器 A 上执行 Ai 时间,在机器 B 上执行 Bi 时间。每项作业都应在机器 A 或 B 上完成。作业应按顺序执行。给定数组 A 和 B 以及一个整数 K,找出完成这些作业所需的最短时间,假设您不能在同一台机器上连续完成 K 个以上的作业。这可以在 O(NK) 空间和时间中完成。这可以改进为 O(NK) 时间和 O(N ) 空间,并进一步改进为 O(N logN ) 时间。