游乐园调度使用动态编程

时间:2018-02-13 00:36:16

标签: algorithm dynamic-programming analysis

  

你到达Waldo的世界游乐园,剩下T分钟,直到公园关闭。公园有骑行,你的目标是在公园关闭之前完成尽可能多的游乐设施。 (对于这个问题,乘坐两次相同的骑行计为2次骑行。)您将获得一个W表,W(i,t)为您提供在时间t骑行的等待时间。为方便起见,假设t表示为公园关闭前的分钟数。骑我自己需要ri分钟,所有时间都以整数分钟计算。

我尝试使用类似于0 1背包问题的方法解决它。但是包含等待骑行时间的表W随着时间t而变化。它究竟是一个背包加活动选择组合问题吗?

1 个答案:

答案 0 :(得分:1)

这有什么意义吗?让f(t)代表t时最可实现的游乐设施。然后:

// Higher t is back in time
// since t is how many minutes
// before the park closes

f(t) = max(
  // Not taking any ride
  f(t - 1),

  // Take ride i
  1 + f(t - W(i, t) - r_i)
)
for all i