zoukankan      html  css  js  c++  java
  • 寒假Day18搜索

    今天做了一些搜索的题目,感觉我又迷了,我好菜也。。

    针对深搜:

    为什么需要标记

    记忆化搜索定义int dfs(),不需要标记,book数组只用于记录次数/步数等,一旦搜到走过的book[x][y],就直接返回,不用再往下搜索,其实就是有部分的动态规划的思想在。

    一般搜索定义void dfs(),需要book数组进行标记,搜索过后需要记得取消标记

    深搜剪枝:

    奇偶剪枝:HDU1010

    给出起点、终点、T,问小狗从起点走到终点能否恰好为T秒。

    这题限定了步数,(未必是bfs啊),利用奇偶剪枝才不会超时

    没有进行搜索的时候先判断全局T-[abs(ex-sx)+abs(ey-sy)]结果为非偶数(奇数),则无法在t步恰好到达;

    搜索的时候T-step-[abs(ex-sx)+abs(ey-sy)]进行判断

    当该值小于零或者是奇数的时候就可以return了。(不要忘了小于零)

    写了有一道题目,找到终点之后,flag进行标记,然后还需要写if(flag) return; 否则会超时。 

  • 相关阅读:
    Shell编程常用
    毕设问答
    《如何高效学习》
    《如何阅读一本书》(未完)
    《牧羊少年奇幻之旅》
    2019.04月总结
    上周还是合意的,且找到了一定的遵循4.6-4.12

    错误和异常
    数据结构
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12253491.html
Copyright © 2011-2022 走看看