POJ 2157 Maze 解題報告

2021-07-25 07:14:13 字數 1000 閱讀 2844

題目大意是給你一張n×m的迷宮,大寫字母a-e代表的是門,小寫字母a-e對應的是其大寫字母門的鑰匙,如果一扇門在一張圖里有多個鑰匙,那麼必須都找到這些鑰匙才能開啟這扇門,x代表是牆壁,『.』代表此處為空可以行走,詢問是否可以從s走到g。

剛開始思路想錯了,想著乙個點最多被訪問4次,然後就自信的寫完了,手出了組資料,好像不大對。。然後就開始想想想,最後還是沒有想到什麼比較好的搜尋方式,,只能看題解了。看了黃學長的部落格,恍然大悟(智商太低了),這道題不用回溯,每個點訪問一遍就行,如果找到一扇門的所有鑰匙且可以走到這扇門前,就直接蹦到門的座標再dfs,因為不可能出現兩個a門這種情況,所以不用擔心出錯。

還是要多練練搜尋啊!!

**如下

/*my convictions will not falter.*/

#include

#include

#include

#include

#include

using

namespace

std;

const

int n=25,m=6;

const

int movx[5]=,movy[5]=;

int num[m],key[m],s[n][n],sx,sy,gx,gy,can,dorx[m],dory[m];

int vis[n][n],pd[m];

void read(int x,int y)

}return ;

}void dfs(int x,int y)

else

if(!vis[tx][ty]&&s[tx][ty]>=6&&s[tx][ty]<=10)

else

if(!vis[tx][ty]&&s[tx][ty]==0)

else

if(tx==gx&&ty==gy)

}}int main()

while(1);

return

0;}

poj 2157 Maze 列舉排列 dfs搜迷宮

題意 給乙個迷宮,求是否可從s走到g,迷宮中有門和鑰匙,要獲得相應種類的所有鑰匙才能開啟該種門 比如獲得所有a才能開啟a 分析 列舉開啟門的順序,搜路徑即可。poj 2157 sep9 include includeusing namespace std const int maxn 32 char...

解題報告 Maze

眾所周知 怎麼又是眾所周知 仙劍的迷宮是難走的要命,某人就在仙四的女羅巖困了很長時間。我們可以把女羅巖的地圖抽象成n n 的地圖,我們現在在 1,1 處,而出口在 n,n 每次行動只能向上下左右移動一格。圖中有 m個機關,只有開啟某個機關之後,與該機關相對應的地方才可以行走。當然,地圖中還會有小怪獸...

poj解題報告 1328

不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...