HDOJ 2102 A計畫 解題報告

2021-06-22 22:43:30 字數 1105 閱讀 3340

這是一道三維圖的搜尋題。中文描述,題意就不再贅述了。本題詢問勇士能否在規定時間內救走公主,因此使用寬度優先搜尋是最好的了。另外本題是三維圖,第三維也只有兩種情況,因此每個節點可供搜尋的鄰節點也不多。

注意: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已經得到了前往沼澤地的地圖,他可以清晰地看到自己所在的總部...