算法第三章作业

一.对动态规划的理解:

动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干个子问题,先求解子问题,再结合这些子问题的解得到原问题的解。不同的是,适合动态规划法的问题经分解得到的子问题往往不是互相独立的。

 

二.列出编程题1,2的递归方程:

1

for(int j=2;j<=n;j++)

    {

        for(int i=1;i<j;i++){

            if(a[i]<a[j]&&b[j]<b[i]+1){    //a是输入的数组

                 b[j]=b[i]+1;     //b是记录到i的最大字段和

            }

        }

    }

2

    for(int i = 1; i <= n; i++)   

        dp[i][i] = 0;   

        for(int s = 2; s <= n; s++)    {   

            for(int i = 1; i <= n-s+1; i++)        {           

                int j = i + s - 1;           

                for(int k = i; k <= j-1; k++)        {// 比较两种情况租金的大小               

                    dp[i][j] = min(dp[i][j], r[i][k] + r[k][j]);               

                    dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);           

                }       

            }   

        }    

3.说明结对编程的情况:

   互相学习,不懂的查书和资料。

posted on 2019-11-03 12:27  小饼干儿  阅读(100)  评论(0编辑  收藏  举报

导航