PKU 2488 深度優先搜索

背景:對於有些問題沒有好的算法去求解,只能通過遍歷搜索的方式尋找可行解,此時就用到了寬度優先搜索和深度優先搜索。深度優先搜索用棧實現,可以利用系統的棧區遞歸調用,也可以自己維護好結構。一般來說,自己維護棧對空間的把握更準確一些,而且調試也更方便一些。不過遞歸調用的方式有時確會寫出很漂亮的代碼,深度搜索隨着問題規模增加時間開銷會顯著增加,此時必須通過一些剪枝技術來進行優化。寬度優先搜索用隊列來實現,隨問題規模增加空間開銷會顯著增加。

 

題意:給出棋盤行列數,求從(1,1)點能否遍歷整個棋盤,能順序打印路徑,不能則打印"impossible"

注意:

1、行是數字, 列是字母。輸出答案要進行排序,先字母非降序,再數字非降序。這要求方向數組數據有次序,這樣遍歷結果自然有序。

2、行、列的範圍是1到26.

3、每組輸出前都有"Scenario #id:",輸出結束要有回車。不能打印"impossible",能的話順序打印路徑並且按照先字母再數字的次序。

 

示意圖:

PKU 2408示意圖

 

源代碼:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章