zoukankan      html  css  js  c++  java
  • 算法第三章上机报告

    在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。

    1、通过对题目的分析可以得到存在最优子结构和重复计算的问题,所以采用动态规划的方法去解决,

         列出递归方程:a[i] = a[j] ( i与j相连 ) + b[i]

       a[ ] 表示从 i 出发可挖到地雷的最大数, b[ ] 表示从 在 i处可挖到的地雷

    2、 因为 i的解 使用 j(j>i) 的 解去求解的,所以这里建立一维表,从右往左填数据

    3、算法里面需要用到 b[ ] 来存储 i处可挖地雷数,a[ ] 存储 从 i 出发可挖到地雷的最大数,path[ ]记录路径, 二维数组 m[i][j] 存储 i, j是否可连,所以空间复杂度为 O(n²)

      算法里面需要求 a[i] 需遍历 m[i][j] (遍历上三角), 所以时间复杂度为 O(n²)

        所以总的复杂度为 O(n²)

    4、动态规划我认为比较难的是列出方程和列出方程后采用什么样的方式去解决,如果满足最优子结构和重复子问题的时候就可以用动态规划的方法去解决

       

    5、结对编程对于动态规划还是有好处的,因为每个人都有各自的解决方法,可以拓展视野。

  • 相关阅读:
    EL 自定义函数
    Linux 软件安装管理
    Linux 网络环境查看命令
    Linux 用户和用户组的命令
    Linux 用户和用户组进阶命令
    Linux 用户和用户组的基本命令
    将博客搬至CSDN
    U盘做系统启动盘(PE)时的文件格式选择 HDD ZIP FDD
    STM32 的几种输入输出模式
    define 中强制类型转换 && 浮点数后面带f
  • 原文地址:https://www.cnblogs.com/jintao1990/p/13908961.html
Copyright © 2011-2022 走看看