hdu1429勝利大逃亡 續 廣搜

2021-07-08 11:36:21 字數 789 閱讀 3383

從今天開始刷搜尋~·吼吼吼~~~

這是很簡單的廣搜,書上的模板只適合於遞迴輸出orz,自己試著改也沒改明白t^t ,不過一大進步這段時間的刷題讓我徹底不怕stl了,哈哈哈,總是對於新語法的使用有一絲恐懼,多用用也就是那麼回事吧。

題意:**文字不解釋→_→然而鑰匙這個問題嘛,下面的**處理的相當巧妙~mark[行][列]=字母序號  key是遞推求出的 又用到了位運算 ,這點非常好~~

/**********

hdu1429

2015.11.27-2015.11.30

717ms 31340k 2436 b

**********/

#include #include #include #include #include #include #include using namespace std;

const int maxn=20+10;

const int inf=(1<<30);

int n,m,start_x,start_y,dir[4][2]=;

char s[10]=;

char s[10]=;

int vis[maxn][maxn][2<<12],mark[maxn][maxn];

char ma[maxn][maxn];

struct node

;int bfs(int x,int y)

); vis[x][y][0]=1;

while(!q.empty())

return 0;

}

hdu1429 勝利大逃亡 續 (廣搜 狀態壓縮)

是廣搜 狀態壓縮,狀態壓縮就是vis陣列加了乙個狀態表示這個狀態時來過沒,由二進位制01所代表的整數來表示,而狀態的表示由目前所擁有的鑰匙決定,這樣很容易就可以知道,遇到路就步數加一,狀態不變遇到鑰匙就改變狀態,遇到門就 一下看看有沒有鑰匙。自己要注意的是 想當然了,用了 include inclu...

HDU1429 勝利大逃亡 續

學習位壓縮很好的一道題,因為只有10把鑰匙,那麼可以把10鑰匙壓縮二進位制,比如1000就表示身上只要第4把鑰匙的狀態,110表示帶有第2把和第3把鑰匙,那麼要判斷當前的鑰匙串有沒有能開啟當前門鑰匙,那麼就只要乙個 運算就可以,因為11101110 00100000 00100000 這樣就說明那一...

hdu 1429 勝利大逃亡 續

code include include using namespace std struct px struct px start char map 25 25 int mark 25 25 1025 dir 4 2 三維表,走過的路徑對應表的狀態 int wys 10 int n,m,t boo...