HDU 2579 記憶化BFS搜尋

2021-09-09 01:17:39 字數 997 閱讀 9862

題目鏈結

題目大意:走迷宮。對於障礙點,只有當前(dep+1)%k才能走,問最少時間。

解題思路

只有乙個關鍵:

每個點不是只可以走一次。最多可以走k次。

原因是對於乙個點,可能是通過障礙點在k的倍數(即餘數為0)步到達的,也可能是通過其它途徑到達的,但是不是k的倍數(餘數為1~k)。

這樣,判斷狀態是否重疊的依據就是看在(x,y)點的餘數狀態了。vis的第三維非常重要。

#include "

cstdio

"#include

"string

"#include

"cstring

"#include

"iostream

"#include

"queue

"using

namespace

std;

int n,m,k,sx,sy,ex,ey,t,vis[105][105][15],dir[4][2]=;

char map[105][105

];struct

status

};int bfs(int x,int

y) }

else}}

return -1;}

intmain()

if(tt[j]=='

g') }}

int ans=bfs(sx,sy);

if(ans==-1) cout<<"

please give me another chance!

"

}

11899492

2014-10-18 10:10:31

accepted

2579

0ms964k

1734b

c++physcal

hdu 2579 第二次與女孩的約會

我去.這題 真無語了 忘記清空佇列了.當然 你要是將佇列宣告在函式中 就沒這個煩惱了 每次呼叫相當於清空了 而我 是將它宣告為全域性變數的.臥槽了 坑死了 這題 拋開這個不講 女孩子還是很有心思的.要用三維vis陣列 第三位表示的狀態是移動到那一步 k所餘的時間 因為題目條件的特殊性 石頭在time...

hdu3779 記憶化搜尋

兩列火車入站,重新排列的車廂符不符合要求 記憶化搜尋,ans i j 記錄的是第一列火車的第i節和第二列火車的第j列在組合後的序列裡找不找的到 如果找的到就標記為1,因為是從前到後搜尋,所以在ans n m 1時,表示符合 include include includeusing namespace...

hdu2452 記憶化搜尋

一顆樹,邊是單向的,每個節點有一定的權值,要你從根節點走到葉子節點,走到第偶數節點時,使後面的權值和最小 走到第奇數節點時,使後面的權值和最大 邊鍊錶儲存,並查集查詢根節點 用val i 0 表示第i個節點是偶數節點的值和val i 1 表示第i個節點是奇數節點的值 遞迴的計算,因為節點很多,所以要...