這道題主要就是如何處理轉彎的次數問題,我們可以這樣做,把初始轉彎次數初始化為-1,然後每次進行四個方向的搜尋的時候,轉彎次數加一,並且在這一轉彎次數之下往4個方向筆直地走(因為直走的話轉彎次數不變),把走過的路標記一下,這樣,我們就可以確保走到哪個地方,都是使用了最少的轉彎次數。這道題的狀態表示很簡單,就是座標和轉彎次數
typedef struct node;
然後就是要注意輸入,包括空格的處理for(int i=0;i#include#includeusing namespace std;
#include #define maxn 105
char map[maxn][maxn];
int vis[maxn][maxn];
int n,m;
int sx,sy,ex,ey,turn;
int d[4][2]=;
typedef struct node;
node temp,s,next1;
int bfs()
} }return 0;
}
int main()
sx--;//從0開始的話記得要全部減一
sy--;
ex--;
ey--;
memset(vis,0,sizeof(vis));
vis[sx][sy]=1;
s.dir=-1;
s.x=sx;
s.y=sy;
if(bfs())
printf("yes\n");
else
printf("no\n");
} return 0;
}
hdu 1728 逃離迷宮
思路 一開始我是往左和往右走,不轉彎,計數不用加,往上和往下走,就轉彎,計數就加一,進行廣搜,搜到最後那個點,比較就可以啦,但是華麗麗的wa啦。所以改一條路搜到底,走不了啦,就一定要轉彎啦。include include include includeusing namespace std stru...
HDU 1728 逃離迷宮
bfs 搞清楚是轉彎而不是步數。所以需要乙個方向一直走下去直到邊界或者牆。還有就是注意題意。給出起點終點的 x,y 位置是交換的。題目是下標1開始。注意。include include include include include include include include include i...
HDU 1728 逃離迷宮
逃離迷宮 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 給定乙個m n m行,n列 的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中...