HDU 1242 bfs優先佇列

2022-08-09 02:57:11 字數 603 閱讀 3137

angel所在的位置是a;  angel的朋友用r表示, angel可能有多個朋友 ,也就是可能有多個r ;   #表示牆  ;x表示警衛  ,可能會有多個警衛;

angel的朋友要進入a  只能上下左右的走, 每走乙個格用乙個單位時間,如果遇上警衛,殺掉警衛要花乙個單位時間   問angel能否救到angel,

如果能 求最少的時間

被這道題的有兩個地方震了   1.有多個r  搜r到a有多條路  最後比較   但是倒過來想 從a搜到r就搜一條最佳路

2.涉及到乙個殺警衛的時間,所以queue佇列中的node 不是按時間大小排列的, 用到priority_queue,

第一學著次用priority_queue,   在此感謝cxl  

**:

#include#include#includeusing namespace std;

char map[202][202];

int n,m,bx,by;

int xx[4][2]=,,,};

struct node

};void bfs(int bx,int by)

bfs(bx,by);

}return 0;

}

hdu1242 BFS 優先佇列

這道題的最短路線不一定是最優路線,所以bfs時用到優先佇列,並加入判斷條件 只有比之前用時少的路線可以被加入佇列,所以就不用標記經過的節點了。ac include include include include include include using namespace std char ch ...

hdu 1242 Rescue BFS 優先佇列

起初只是用dfs做,但後來發現問題太多了,起點是乙個,但可能有多個士兵,要找到最小的距離即要求每乙個子問題的結果都是最小值。用深度優先搜尋自然不能每次都返回較小值。而廣度優先搜尋就像使用了分身術一樣,4個方向都有friend去找angel,各自返回自己的最小值,所以思路就是bfs 優先佇列。incl...

HDU1242 rescue BFS 優先佇列

先來普及一發優先佇列,是常用到bfs裡面的 寫法大概是 structnode 其目的是先到的進行先呼叫的思想 在queue的用法稍微加了新的東西,priority queue 其餘的還是老套路 這個題為了比較大小,先把所有初始值變味了1,然後搜尋到後才置為0方便和step比較,儲存 ac inclu...