词条变化最大的作品

时间:2018-12-16 16:39:08

标签: dynamic-programming

我正在尝试解决问题Q5。 https://utdallas.edu/~kyle.fox/courses/cs4349fa17/final.pdf 我认为寻找组成部分最多的作品是一种变体。 产生最佳解(对a部分的答案)的dp是

for each square:
      for each move:
           dp[squareno][moveno]=0
              for each move:
                     dp[square][moveno]=1+min(dp[squareno+moveno][move])

复杂度是theta(4 * 4 * n),其中n是平方数。 如果您查看解决方案并提出一些修改建议,将不胜感激。

1 个答案:

答案 0 :(得分:0)

不需要额外的状态move。目标也是最大化。

  

游戏的目的是在游戏开始前尽可能多地移动   游戏结束。

伪代码:

dp[i]将是“最大移动量从第ith个十字穿过正方形行的最右端”。如果无法穿越,它将为-1

for square n..1:
   dp[i] = -1

   for all val in square i:
     if square+val > n:
       dp[i] = max(dp[i], 1)
       continue

     if dp[i+val] == -1:
       continue

     dp[i] = max(dp[i], 1 + dp[i+val])