我正在尝试找到针对以下问题的递归关系和算法,但已经停留了几天:
总共 H > n 在 n 学校项目中工作的时间(所有这些都在同一时间到期),您现在想要决定将此时间分开。为简单起见,假设 H 是一个正整数,并且您将在每个项目上花费整数个小时。你已经提出了一组函数 f 1 ,..., f n (粗略估计)当然)这样在项目上工作 x 小时我会得到 f i ( x )关于那个项目。
可以假设 f i ( x )如果 x 增加并且每个项目都将减少,则不会减少评分从1到100。
所以,鉴于 H 和 f 1 ,..., f n ,您需要确定每个项目将花费多少(整数)小时,以便您的平均成绩尽可能大(最高成绩)。
有没有人有想法?
答案 0 :(得分:1)
我认为这样可行:
G[H<0, j] = -Infinity
G[H, 0] = 0
G[H, j] = max(G[H-i, j-1]+f_j(i)) for 0<=i<=H
在复发中,我试图找到项目j的最佳工作小时数。该解决方案是O(H ^ 2 * n)。