一. 題意:英雄去救公主,起點(0, 0), 終點(row - 1, col - 1), 『x'不能走,遇到數字停下來打怪,數字多少就要打多少秒,求最快到達時間。
二. 解題思路:看結構體怎麼定義的就直接知道我怎麼記錄路徑的, 記得路徑的陣列要開大一些。
三. ac**:
#include #include #include #include using namespace std;
const int inf = 99999;
int row, col, coutime;
char maze[101][101];
int movei = ;
int movej = ;
char direction = ;
bool check(int i, int j)
struct node
};node cur, next;
bool bfs()
else
maze[next.i][next.j] = 'x';
que.push(next);}}
}return false;
}void printpath()
}}int main()
}
四. 總結:這題讓我知道了求最短路徑要廣搜(優先佇列),求特殊解或者是全部遍歷用深搜。開始傻傻用深搜,然後超時了,然而廣搜還是600多ms。囧!
五. 做完另一道bfs後再回來總結一下:
1. 廣搜求最短路徑,優先佇列的優先順序就是路徑。
也就是說,要把路徑,本題也就是時間,繫結在乙個結構體裡面。
2. 其次,不要忘記標記走過的路啊啊啊,剛剛忘記標記然後就搞笑了。
HDU 1026 (BFS 記錄路徑)
bfs 路徑記錄 problem id hdu 1026 author id fuqiang11 time 2013 07 17 algorithm bfs status accept include include include using namespace std define inf 0x...
HDU1026 BFS 優先佇列 路徑儲存
剛開始做bfs專題時遇到它,因為路徑儲存放棄了 現在做,剛開始各種wa。後來加了個優先佇列,就ac了。額。include include include include include include include include include include includeusing name...
BFS求最短路
假設有乙個n行m列的迷宮,每個單位要麼是空地 用1表示 要麼是障礙物 用0表示 如和找到從起點到終點的最短路徑?利用bfs搜尋,逐步計算出每個節點到起點的最短距離,以及最短路徑每個節點的前乙個節點。最終將生成一顆以起點為根的bfs樹。此時bfs可以求出任意一點到起點的距離。poj3984 bfs求最...