給定一張圖,要怎麼樣歷遍所有點或找尋兩點路徑?
我們可以由 號點開始,每次走訪該點附近尚未走訪的點
並將走訪過的點丟入一個 裡面
如此反覆循環,直至走到目標點為止
時間複雜度: 為圖的點數,一次歷遍
走訪小技巧
開一個 陣列,將走訪過的點標記
避免再次尋訪浪費時間
(視題目做標記)
請先看 Zero Judge d453
起點在第一行第三列 (直行橫列)
因為
同理終點第四行第三列
我們可以建一個陣列,表示走路方向
然後針對當前座標
找尋他四周可不可以走,如果可以就一直走訪
然後丟入
直至終點或無法走尋
同剛剛的問題,不過這裡一定要標記!
作法如下
難度自上排下,TIOJ 2180需要 Priority Queue
給定一張圖,要怎麼樣歷遍所有點或找尋兩點路徑?
我們可以由 號點開始,一直走,走到不能走為止
以圖為例,先從號點開始
往二號,三號,五號,再到四號
到底後返回五號
再走至六號
時間複雜度: 為圖的點數,一次歷遍
走訪小技巧
開一個 陣列,將走訪過的點標記
避免再次尋訪浪費時間
(視題目做標記)