这是一个问题,没有人能在我的大学“闪光测试”在我的课正确回答:动态规划 - 任务调度
我们给出:
INTñ< 1000的时隙
INT [] C:-10 000 < = C [I] < = 10 000支付对应于每个时隙的
INT T:槽数,我们必须使用
问题陈述以下列方式:
懒惰工人具有时间N个时隙中一个总的工作日。
对于每个时间段他得到一定的支付(C [我] - 这不切实际,也可以是负面的)。
他想选择正好T槽的间隔,以便他能得到最大的付款。我们必须选择他将工作的时间间隔。例如[1,4] - 从第一个位置到第四个位置。
问题是,每当他休息一下,当他回来工作时,他的第一个工作岗位将不会被支付,因为他已经习惯了再次工作,就像一个懒惰的人一样。因此,我们也可以选择像[5,5]这样的空白区间,如果我们有负面支付,这可能会派上用场。无论事先支付什么款项,都将获得付款0。
使其更清晰,我要举一个简单的例子:
比方说,我们有N = 5个时隙,我们要选择T = 4。 C = {3,9,1,1,7}
最好的解决方案是间隔[1,2]; [4,5]付款总额为9 + 7 = 16
我们总共覆盖了T = 4个时隙,解决方案是有效的。