• 学大伟业 Day 2 培训总结


    一.dp

    动态规划的本质

    是一种思想。通过对原问题划分成子问题,寻找子问题之间的联系,通过求解子问题得出原问题的解。与贪心不同的是,动归是深谋远虑,考虑全局最优解;而贪心则目光短浅,只考虑局部最优解。

    子问题 对应 状态

    子问题之间的联系 对应 状态转移

    边界子问题 对应 边界状态(状态转移的边界)

    边界子问题:其结果不依赖其他子问题

    求解动态规划类题目的要点

    定义状态

    寻找状态转移方程

    边界状态

    值得一提的是 动态规划中边界状态是可以由状态定义轻松得出 边界不能忽略。

    动态规划的分类

    按照常用套路的不同,可以对动态规划进行如下分类:

    一维动规

    背包动规

    区间动规

    树形动规

    DAG动规


    二.搜索

    搜索的重点

    搜索的实现

    剪枝与优化

    盲目搜索与启发式搜索

    盲目搜索(只是搜索的顺序不同):

    深度优先搜索 宽度优先搜索

    启发式搜索:

    A*算法

    dfs

    问题

    1.深度问题

    2.死循环问题

    解决方法

    1.对深度加以限制

    2.记录从初始状态到当前状态的路径

    深度优先搜索的性质

    一般不能保证找到最优解 当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制

    最坏情况时,搜索空间等同于穷举

    是一个通用的与问题无关的方法

    节省内存,只存储从初始节点到当前节点的路径

    bfs

    优先扩展深度浅的节点 通常使用一个队列来实现

    广度优先搜索的性质

    当问题有解时,一定能找到解

    当问题为单位耗散值,且问题有解时,一定能找到最优解

    方法与问题无关,

    效率较低

    存储量比较大

    迭代加深搜索

    解决宽搜内存消耗大和深搜不能保证最优解的问题

    分析:

    宽搜内存消耗大是由于记录了搜索扩展的节点

    深搜不能保证最优解是由于其扩展不是按照代价的顺序扩展的

    所以我们需要:

    不记录所有扩展节点

    按照顺序扩展

    解决办法:

    枚举最大的代价,用深搜判断是否有解

    启发式搜索

    在OI中常常也被称为A*搜索

    关键在于对当前局面作出预估,判断当前局面到目的局面至少还需要多少步

    估价函数:估价函数的好坏决定了A*算法的优劣

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    制作图片自转的效果
    随机摆放文字带飞入飞出的效果
    Spinner的样式大致简介
    Android视图SurfaceView的实现原理分析
    Android应用程序与SurfaceFlinger服务的关系概述和学习计划
    分享两篇关于ActionBar样式设置的博客
    RMI(远程接口调用)
    j建立一个小的servlet小程序
    eclipse上ndk环境的搭建&&so文件的生成&&jni文件的调用
    Java 过滤器实现(登录) + 拦截器(两种方法)
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/8470129.html
Copyright © 2020-2023  润新知