Pi_*_*Pi_ 6 algorithm optimization dynamic-programming
我试图找出类似于以下问题的解决方案:
使用动态规划,解决问题,找到花费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
Run Code Online (Sandbox Code Playgroud)
Vau*_*ato 10
让我们S[i][j]代表您j在第一次i考试中花费时间单位的最高分.您可以S[i][j]通过查看S[i-1][k]每个值来计算k.对于每个元素S,请记住k上一行中给出最佳结果的值.对于及时学习所有考试的最佳分数的答案T是正确的S[n][T],您可以使用k您记住的值来确定每次考试花费的时间.
S[][] = 0
for j = 0:T
S[0][j] = M[0][j]
for i = 1:n
for j = 0:T
max = 0
for k = 0:j
# This is the score you could get by spending j time, spending
# k time on this exam and j-k time on the previous exams.
Grade = S[i-1][j-k] + M[i][k]
if Grade > max
max = Grade
end for
S[i][j] = max
end for
end for
Run Code Online (Sandbox Code Playgroud)