優先佇列 BFS

2021-07-05 13:24:16 字數 883 閱讀 6755

hdu 5433  xiao ming climbing 

這題就是優先佇列+bfs ,,,但是一直wa 原因是在搜尋時標記的位置有問題。。。。。。(以前都沒有出現過這種情況)

另外就是雖然找過這點的座標(先前到過這個點),,但是鬥志值可能不一樣(題目中要求只要不為0就可以,也就是說到這個點的體力消耗可能會不一樣,要取最小的那個),,,,所以要用三維陣列來標記。(一般的優先佇列是用二維陣列來標記吧)

#include #include #include #include #include #include #include #include #include #include #define pi 3.1415926

#define e 1000

using namespace std;

typedef long long ll;

char map[55][55];

int n,m,k,sx,sy,ex,ey;

bool vis[52][52][52];

int dis[4][2] = ;

struct node

node(int x_,int y_,int k_,double d_)

:x(x_),y(y_),k(k_),d(d_) {}

};double bfs()

}return -1;

}int main()

scanf("%d%d%d%d",&sx,&sy,&ex,&ey);

double ans = bfs();

if(ans >= 0)printf("%.2lf\n",ans);

else printf("no answer\n");

}return 0;

}

BFS 優先佇列

湘潭大學2018 小明來到乙個由n x m個格仔組成的迷宮,有些格仔是陷阱,用 表示,小明進入陷阱就會死亡,表示沒有陷阱。小明所在的位置用 s 表示,目的地用 t 表示。小明只能向上下左右相鄰的格仔移動,每移動一次花費1秒。有q個單向傳送陣,每個傳送陣各有乙個入口和乙個出口,入口和出口都在迷宮的格仔...

BFS 記錄路徑 bfs 優先順序佇列

bfs 記錄路徑 原題鏈結 找到最短路徑,然後輸出,由於地圖上有怪物,我們還要額外記錄停留的時間。本題需要用到優先順序佇列,唔,大概意思就是對佇列進行排序,我們需要挑選最小的來計算,確保是最短路徑 關於優先順序佇列可以看這個 優先順序佇列 我在網上找到的我感覺講的很詳細的部落格。include in...

HDU 2653 BFS 優先佇列

這題題意 告訴起點y的位置,然後告訴終點l的位置,然後輸入 n,m,t p,其中 n和m是代表行和列,而t 是時間,p代表能量,如果在t範圍內沒有找到l的話,就失敗了,如果在t範圍內找到了l,那麼求出最少步數,代表空地,可以走路過去,也可以飛過去,代表不能走路過去,也不能飛過去,而 代表的是可以飛過...