• 算法第三章上机报告


    在一个地图上有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、结对编程对于动态规划还是有好处的,因为每个人都有各自的解决方法,可以拓展视野。

  • 相关阅读:
    SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
    hibernate用注解(annotation)配置sequence
    SSH(Struts2+Spring+Hibernate)框架搭建流程
    spring框架学习(一)
    struts2 s:if标签以及 #,%{},%{#}的使用方法
    js页面跳转参考代码大全
    Struts 2常用的Ajax标签
    Struts2文件上传(基于表单的文件上传)
    struts.custom.i18n.resources国际化
    Struts2常用标签
  • 原文地址:https://www.cnblogs.com/jintao1990/p/13908961.html
Copyright © 2020-2023  润新知