记忆化搜索与递推

数字三角型,P160页

      递推计算:

   int i,j;
   for(j =1; j <=n; j++)
      d[n][j]=a[n][j];
   for(i=n-1;i>=1;i--)
      for(j=1;j<=i;j++)
         d[i][j]=a[i][j]+ d[i+1][j]>?d[i+1][j+1]; 
 


记忆化搜索:

 

    memset(d,-1,sizeof(d));
    int d(int i,int j)    //递归函数
    {
        if(d[i][j]>=0)
            return d[i][j];
        return d[i][j]=a[i][j]+(i==n ? 0: d(i+1,j)>?d(i+1,j+1) );
    }    


 

  

你可能感兴趣的:(DP~动态规划)