zoukankan      html  css  js  c++  java
  • 第三章作业

    一、对动态规划的理解

    1.基本概念

    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。

    2.分治法的问题

        子问题是相互独立的,如果子问题不是相互独立,分治法将重复计算公共子问题,效率很低。(自顶向下地计算)

    3.动态规划特点

        把原始问题划分成一系列子问题。

        求解每个子问题仅一次,并将其结果保存在一个表中,以后用到时直接存取,不重复计算,节省计算时间。

        自低向上地计算。

    4.使用动态规划条件

        优化子结构(保证正确性):如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,

        重叠子问题(保证有效性):即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。

    二 、编程题递归方程

    7.1

    for(i=2;i<=n;i++)
            {
                max=0;
                for(j=1;j<=i-1;j++)
                {
                    if(m[j]>max&&num[i]>num[j])
                    {
                        max=m[j];
                        m[i]=max+1;
                    }
                }
        }

    7.2

        for(int k=2;k<n;k++)
        {
            for(int i=1;i<=n-k;i++)
            {
                int j=i+k;
                for(int z=i+1;z<=j;z++)
                {
                    int temp=dp[i][z]+dp[z][j];
                    if(dp[i][j]>temp)
                        dp[i][j]=temp;
                }
            }
        }

    三 、结对编程情况

      这次作业没有和队友很好地交流,大部分都得是自己看书完成的。下次作业一定要约上队友一起去学习,互相促进,共同进步。

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/icyk/p/9901888.html
Copyright © 2011-2022 走看看