搜索总结

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#status

大约做了一周的kuangbin带你飞搜索专题,也逐渐对搜索慢慢熟练了起来。

一般的搜索就是DFS和BFS

DFS

DFS就用递归来写,须要注意的地方

  1. 递归返回时要恢复变量,递归改变和恢复的都是下一层的变量
  2. 要求输出路径的时候。我比較喜欢用son数组来记录,这样输出的时候直接顺序输出

BFS

求最小值之类的就是BFS,我通常会使用结构体

  1. BFS也要标记訪问,只是因为没有返回过程,所以不用恢复变量
  2. 多case问题记得要清空队列
  3. 输出路径时,因为一个节点会有多个son。所以仅仅能用father数组进行存储

其他

  1. 保存图的时候习惯用Map和vis两个数组进行存储
  2. 都要注意初始状态的标记处理,如标记訪问
  3. 写方向数组的时候有4,5,8的情况。

    5个方向就是包含自身,这个要注意

  4. 因为没有推断in,可能会导致訪问非法而改变n,m的值
  5. 有一类关闭灯的问题,仅仅需枚举第一行的状态,后面所以的状态就已经确定了。仅仅需推断前一行的灯的状态

posted on 2017-08-21 11:09  slgkaifa  阅读(268)  评论(0编辑  收藏  举报

导航