逃離迷宮(hdu1728)

2021-10-02 08:37:10 字數 1123 閱讀 2341

原題鏈結

給定乙個m × n (m行, n列)的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,gloria是個沒什麼方向感的人,因此,她在行走過程中,不能轉太多彎了,否則她會暈倒的。我們假定給定的兩個位置都是空地,初始時,gloria所面向的方向未定,她可以選擇4個方向的任何乙個出發,而不算成一次轉彎。gloria能從乙個位置走到另外乙個位置嗎?

dfs

有乙個點很坑 行列是反的

對每個座標需要轉彎的次數進行統計

對過多轉彎的方案進行剪枝

否則會超時

using

namespace std;

typedef

long

long ll;

int m,n;

char s[

105]

[105];

int k,yy,xx,yyy,***;

bool vis[

105]

[105];

bool flag;

int ss[

105]

[105];

int dir[4]

[2]=

;void

dfs(

int x,

int y,

int sum,

int zhuan)

for(

int i=

0;i<

4;i++

)else

} vis[tx]

[ty]

=false;}

}}intmain()

} cin>>k>>yy>>xx>>yyy>>***;

dfs(xx,yy,0,

-1);

if(flag)cout<<

"yes"

"no"

<}return0;

}

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想從迷宮的乙個位置走到另外乙個位置,當然迷宮中...