【发布时间】:2016-05-17 13:33:34
【问题描述】:
问题:
Bob 计划工作 n 天,每天i 有一个任务;每个任务只持续一天,必须在当天i 完成,并支付鲍勃x_i 美元。 Bob 一次不能连续执行超过 5 个任务。也就是说,他必须每 5 天至少休息 1 天。
Given 数字x_1...x_n,Bob 应该在哪几天执行任务,他应该在哪几天休息,以便尽可能多地赚钱而不工作超过 5 天?你的解决方案应该是O(n)
我的问题:
我在想出这个问题的重复出现时遇到了麻烦。这个问题我想了很久。我最初的想法是让p[i] = max{x_i + x_i-1 + .... + x_i-4}, where p[i] is the max profit earnable from days i-4 to i. 但是,我意识到,第一,这确实考虑到最佳解决方案可能有两个连续的工作日,第二,我没有建立以前的解决方案。
我的问题:谁能给我一些关于理解这个问题结构的见解?我觉得我只是不了解使解决方案易于查看的关键属性。
提前致谢!
【问题讨论】:
标签: python algorithm dynamic-programming