我正在努力想出解决一个类似如下问题的方案:
- 设M是一个n行T列的矩阵。
- 让每一行都有正的非递减值。(例如,row = [1, 2, 30, 30, 35])
- 令M[i][j]对应于在考试i上花费j个单位时间所得到的分数。
使用动态规划,解决问题并找到花费T个单位时间学习的最佳方法,从而获得最高的总分数。
感谢您提前的任何帮助 :)
我的尝试:
S[][] = 0
for i = 1:n
for j = 0:T
max = 0
for k = 0:j
Grade = G[i][j]+ S[i-1][T-k]
if Grade > max
max = Grade
end for
S[i][j] = max
end for
end for
for i = 1:n
(其中矩阵索引基于0)并不是迭代一个n
行的矩阵,而是一个n+1
行的矩阵。for j = 0:T
同理,这是一个T+1
列的矩阵。 :) - vladr