題意:
給你乙個m行n列的矩陣。
y代表起點,t代表終點。b、e可以走,s、r不可以走,b的時間花費為2,e為1.
求y到t的最短時間。
思路:用優先佇列bfs一遍就可以了
#include #include#include#include#include#include#includeusing namespace std;
const int maxn=500+10;
const int xx=;
const int yy=;
int m[maxn][maxn],vis1[maxn][maxn],vis2[maxn][maxn][4];
int n,m,c1,c2,r1,r2;
struct node
};int check(int x,int y)
int bfs1()}}
return -1;
}int main()
else if(s[j]=='t')
else if(s[j]=='b')m[i][j]=2;
else if(s[j]=='e')m[i][j]=1;}}
printf("%d\n",bfs1());
} return 0;
}
Poj 2312 ,坦克大戰,BFS的變形
挺有趣的一道題目,然而很容易wa,我就wa了一次,雖然我debug的時候已經知道 出問題了,就是比如說我搜到b和e時,從b搜第三個點,b左邊的e就被搜了,step為3,然而其實他是step為2,這裡的處理方法很是巧妙,可以從b出發時,把b換成e,step 1,形成乙個新的結點加入到佇列中去.之後,和...
優先佇列 BFS
hdu 5433 xiao ming climbing 這題就是優先佇列 bfs 但是一直wa 原因是在搜尋時標記的位置有問題。以前都沒有出現過這種情況 另外就是雖然找過這點的座標 先前到過這個點 但是鬥志值可能不一樣 題目中要求只要不為0就可以,也就是說到這個點的體力消耗可能會不一樣,要取最小的那...
BFS 優先佇列
湘潭大學2018 小明來到乙個由n x m個格仔組成的迷宮,有些格仔是陷阱,用 表示,小明進入陷阱就會死亡,表示沒有陷阱。小明所在的位置用 s 表示,目的地用 t 表示。小明只能向上下左右相鄰的格仔移動,每移動一次花費1秒。有q個單向傳送陣,每個傳送陣各有乙個入口和乙個出口,入口和出口都在迷宮的格仔...