暴力(詳見**)
//存圖時先將牆和邊界都賦值為false,這樣bfs時可以少判邊界
#include
#include
#include
#include
#include
using
namespace std;
struct node
node
(const
int&xx,
const
int&yy,
const
int&tt)};
bool map[
5005][
5005];
//輸入的地圖
bool vis[
5005][
5005];
//判斷走過沒
int n, m, walk[8]
[2]=
,,,,
,,,}
;//棋盤的長, 棋盤的寬, 可以走的四個方向 + 能看到的八個方向(注:walk陣列的前四個方向是上下左右,後八個方向是右上,左上,右下,左下)
void
seach
(const
int&x,
const
int&y,
const
int&ex,
const
int&ey)
;//bfs搜尋並輸出答案
boolpd(
const
int&x,
const
int&y,
const
int&ex,
const
int&ey)
;//判斷是否看到獎盃
intmain()
}int x, y, xx, yy;
while
(scanf
("%d%d%d%d"
,&x,
&y,&xx,
&yy))if
(!map[x]
[y])
seach
(xx, yy, x, y)
;//bfs搜尋
}return0;
}void
seach
(const
int&x,
const
int&y,
const
int&ex,
const
int&ey)
for(
int i =
0; i <4;
++i)}}
printf
("poor harry\n");
//走了那麼久都沒走到的話,就輸出 poor harry
}boolpd(
const
int&x,
const
int&y,
const
int&ex,
const
int&ey)
nx +
= walk[i][0
], ny +
= walk[i][1
];//如果沒看到獎盃,就繼續向下乙個位置看 }}
return
false
;//如果八個方向看完後都沒看到的話,就return false
}
洛谷P2199 最後的迷宮 BFS DFS
給出乙個圖及起點和終點,只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。求到達終點的最少步數。這道題真的算是藍題嗎。算是很裸的廣搜了。這道題和裸的廣搜其實只有乙個差別 只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。也就是說,這道題有多個終點,到達任意乙個即可。那麼就直接...
洛谷P2199 最後的迷宮 BFS DFS
給出乙個圖及起點和終點,只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。求到達終點的最少步數。這道題真的算是藍題嗎。算是很裸的廣搜了。這道題和裸的廣搜其實只有乙個差別 只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。也就是說,這道題有多個終點,到達任意乙個即可。那麼就直接...
洛谷P2199 最後的迷宮 BFS DFS
給出乙個圖及起點和終點,只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。求到達終點的最少步數。這道題真的算是藍題嗎。算是很裸的廣搜了。這道題和裸的廣搜其實只有乙個差別 只要到達終點所在行 列或對角線上且兩點之間沒有牆就算到達終點。也就是說,這道題有多個終點,到達任意乙個即可。那麼就直接...