http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#status數組
大約作了一週的kuangbin帶你飛搜索專題,也逐漸對搜索慢慢熟練了起來。markdown
通常的搜索就是DFS和BFSpost
DFS
DFS就用遞歸來寫,需要注意的地方遞歸
- 遞歸返回時要恢復變量,遞歸改變和恢復的都是下一層的變量
- 要求輸出路徑的時候。我比較喜歡用son數組來記錄,這樣輸出的時候直接順序輸出
BFS
求最小值之類的就是BFS,我一般會使用結構體隊列
- BFS也要標記訪問,只是由於沒有返回過程,因此不用恢復變量
- 多case問題記得要清空隊列
- 輸出路徑時,由於一個節點會有多個son。因此僅僅能用father數組進行存儲
其餘
- 保存圖的時候習慣用Map和vis兩個數組進行存儲
- 都要注意初始狀態的標記處理,如標記訪問
- 寫方向數組的時候有4,5,8的狀況。
5個方向就是包含自身,這個要注意ci
- 由於沒有推斷in,可能會致使訪問非法而改變n,m的值
- 有一類關閉燈的問題,僅僅需枚舉第一行的狀態,後面因此的狀態就已經肯定了。僅僅需推斷前一行的燈的狀態