搜索总结

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. 有一类关闭灯的问题,仅仅需枚举第一行的状态,后面所以的状态就已经确定了。仅仅需推断前一行的灯的状态
原文地址:https://www.cnblogs.com/slgkaifa/p/7403279.html