搜索總結

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

大約作了一週的kuangbin帶你飛搜索專題,也逐漸對搜索慢慢熟練了起來。markdown

通常的搜索就是DFS和BFSpost

DFS

DFS就用遞歸來寫,需要注意的地方遞歸

  1. 遞歸返回時要恢復變量,遞歸改變和恢復的都是下一層的變量
  2. 要求輸出路徑的時候。我比較喜歡用son數組來記錄,這樣輸出的時候直接順序輸出

BFS

求最小值之類的就是BFS,我一般會使用結構體隊列

  1. BFS也要標記訪問,只是由於沒有返回過程,因此不用恢復變量
  2. 多case問題記得要清空隊列
  3. 輸出路徑時,由於一個節點會有多個son。因此僅僅能用father數組進行存儲

其餘

  1. 保存圖的時候習慣用Map和vis兩個數組進行存儲
  2. 都要注意初始狀態的標記處理,如標記訪問
  3. 寫方向數組的時候有4,5,8的狀況。

    5個方向就是包含自身,這個要注意ci

  4. 由於沒有推斷in,可能會致使訪問非法而改變n,m的值
  5. 有一類關閉燈的問題,僅僅需枚舉第一行的狀態,後面因此的狀態就已經肯定了。僅僅需推斷前一行的燈的狀態
相關文章
相關標籤/搜索