算法第三章作业

一、你对动态规划算法的理解

  动态规划算法即将待求解的问题分解转换为多个子问题,然后先去求解子问题,然后再对子问题的一步步求解中就能得到原问题的解。

二、分别列出编程题12的递归方程

1)将问题转化为求两个序列的最长公共子序列XY

C[i][j]为序列XiYj的最长公共子序列的长度

                   0                    i = 0,j = 0

C[i][j] =      c[i-1][j-1]+1          i,j>0;xi != yi

                 max{c[i][j-1],c[i-1][j]  i,j > 0;xi!=yi

 

(2)a[i][j]i站和j站之间的最低费用,r[i][j]i站和j站之间的费用

               r[i][j]                    i+1=j

a[i][j] =  min{a[i][k]+a[k][j],r[i][j]}

三、说明结对编程情况

  在弄第一道编程题的时候,由于一直弄不懂怎么才算得出正确的最长子序列,所以从头的想法就是错误的,也导致了pta上一直不过。最后跟同学讨论过之后,才终于清楚了最长子序列的得出方法,也才终于写对了代码。

原文地址:https://www.cnblogs.com/LuMinghao/p/9912229.html