一道比較經典的迷宮問題

2021-07-05 10:48:01 字數 684 閱讀 9551

現在有乙個城市銷售經理,需要從公司出發,去拜訪市內的商家,已知他的位置以及商家的位置,但是由於城市道路交通的原因,他只能在左右中選擇乙個方向,在上下中選擇乙個方向,現在問他有多少種方案到達商家位址。

給定乙個地圖map及它的長寬n和m,其中1代表經理位置,2代表商家位置,-1代表不能經過的地區,0代表可以經過的地區,請返回方案數,保證一定存在合法路徑。保證矩陣的長寬都小於等於10。

測試樣例:

[[0,1,0],[2,0,0]],2,3
返回:2
#include using namesapce std;

//注意visit矩陣,它的作用是防止回溯到上乙個訪問的節點,比如我們從1 1開始向右走,這時候1 1 位置被置1了,向右走後,到達1 2,這時候有四個可能,向右向下向左向上,但是這裡的向左,就沒必要了,因為他就是從左邊過來的,所以為了實現這一步,要用   if(visit[x][y]==1)  return 0;來判斷。當然,visit不僅有全部變數這種形式,也可以用傳參方式來進行。

int visit[10010][10010];

int pm_x,pm_y;

void findpm(vector >map,int n,int m,int *x,int *y)

int countpath(vector> map, int n, int m)

int main()

一道關於迷宮的佇列問題

include include define max n 10 define max m 10 using namespace std const int inf 100000000 使用typedef會更加方便一點 typedef pairp 輸入 char maze max n max m 1 ...

一道概率問題

題目 有一輛汽車有n個座位,編號為1 n,有n個人買票拿號上車,正常人按照自己的座位號對號入座,但是有乙個精神病患者,在空座位中隨機選擇乙個空著的座位就坐,正常人的座位如果被佔,也將隨機選擇乙個空著就坐,假如第乙個上車的是精神病患者,其他人都是正常人,問最後乙個人能坐到自己的座位的概率是多少?對於概...

一道遞迴問題

題目大意是 給定乙個字串a,然後給定多個單詞,然後根據給定的單詞在字串中插入空格,求插入空格最少的組合。例如給定字串ilikeeverything,給定單詞i like every thing likeeverything。輸出為i likeeverything。include include in...