這是一道三維圖的搜尋題。中文描述,題意就不再贅述了。本題詢問勇士能否在規定時間內救走公主,因此使用寬度優先搜尋是最好的了。另外本題是三維圖,第三維也只有兩種情況,因此每個節點可供搜尋的鄰節點也不多。
注意:1.遇到『#』時空穿梭機必定會傳送,沒有其他選擇;
2.根據1可知,當兩邊都是『#』或者一邊是『#』另一邊是『*』時、、、(我只想說勇士死定了);
3.起點和終點可以是同一層;
4.兩張地圖之間有空行,不熟悉字串輸入的人可要小心了;
5.傳送不消耗時間
下面是我的解題**:bfs解題
#include #include #include #include #include #include #include #define n 12
using namespace std;
struct point //定義節點結構體
;char map[2][n][n];
int vis[2][n][n]; //初始化為-1代表該點沒有走過,否則為到達該點的最短時間
int t, n, m, costtime;
queue q; //使用佇列
point start, end; //初始位置和公主位置
void read(); //輸入
void init(); //初始化
void dataprocess(); //資料處理
int main()
return 0;
}void read()
if (a.y + 1 < m && map[a.z][a.x][a.y+1] != '*' && vis[a.z][a.x][a.y+1] == -1)
if (a.y - 1 >= 0 && map[a.z][a.x][a.y-1] != '*' && vis[a.z][a.x][a.y-1] == -1)
}if (vis[end.z][end.x][end.y] <= costtime && vis[end.z][end.x][end.y] != -1)
else
return;
}
hdoj 1153 解題報告
題目意思 有乙個城鎮,它的所有街道都是單行的,並且每條街道都是和兩個路口相連。同時已知街道不會形成迴路。你的任務是編寫程式求最小數量的傘兵,這些傘兵可以訪問 visit 所有的路口。對於傘兵的起始降落點不做限制。解題思路 這個題轉化成求dag圖的最小路徑覆蓋數 節點數 最大匹配數。其中求最大匹配是關...
HDOJ 1047解題報告
練習acm後的第一篇解題報告。這題是求大數階乘的,題目要求最大能求10000的階乘。剛一看到這題,感覺思路很簡單,思考了一會之後就開始寫 思路很簡單,由於是大數乘法,普通的int型別肯定不夠用,要用陣列儲存。然後運算過程就是最簡單的乘法運算過程,乘 移位 加 的簡單過程。提交之後一直是tle,悲劇,...
解題報告 開發計畫
1.題目2.開發計畫 plan.pas c cpp 問題描述 dd戰隊的首領 dds最近幾天很煩惱,dd戰隊想要繼續開發新小陸,dds必須馬上制定出開發計畫。新小陸可開發區域位於一片沼澤地中,數目不明,dd戰隊可以隨便選擇乙個進行開發。dds已經得到了前往沼澤地的地圖,他可以清晰地看到自己所在的總部...