迷宮 哈哈 終於懂了BFS

2022-04-28 16:57:10 字數 770 閱讀 7973

輸入m,n表示m*n的迷宮,接下來m*n行表示迷宮,用1表示路,0表示牆。輸出左上角到右上角最少步數及走法.

輸入:5 5

1 0 1 1 1

1 0 1 0 1

1 0 1 0 1

1 1 1 1 1

1 0 0 1 1

輸出:minimum steps:8

<0,0><1,0><2,0><3,0><3,1><3,2><2,2><1,2><0,2><0,3><0,4>

核心在於bfs 

在走迷宮時,其重要在於一層一層走並記錄每層的最短距離下面用dist[x][y]表示,而x*n+y就是標號[x][y]的編號,用fa[x][y]記錄它父節點的編號

dx[4]與dy[4]用於向四周搜尋,用vis[x][y]記錄是否走過。**如下:

#include#include

int a[110][110],vis[110][110]=,fa[110][110

];int dist[110][110];int dx[4]=,dy[4]=;

int q[110*110

];int

m,n;

int key=1

;void bfs(int x,int

y) }

}}void print(int x,int

y)

else

}void

printt()

intmain()

return0;

}

我終於弄懂了arraycopy

最近在看arraylist原始碼時,多次遇到了system.arraycopy 這個函式,於是就索性把它好好的研究了一番,感覺整個研究過程還是挺有意義的,也有了新的理解和收穫,在此做個記錄。讓我們先來看一下system.arraycopy 的原始碼 不知道大家在看它的時候有沒有什麼疑問呢,如果有的話...

LRU演算法的理解,終於懂了

以上是讓我看明白的部落格鏈結。下面是我自己的理解,比如下面這道題 可以這麼來看,有乙個容量為6的容器,每次放進去乙個有編號的球,如果容器中有相同編號的球,則將這個編號的球拿到容器的最上方,其它球按原來的相對位置下沉,如果容器滿了,還要往裡放,則將最底下的球拿出來丟掉,其他的球也是按原來的相對位置下沉...

終於搞懂了Keras中multiloss的對應關係

1.終於搞懂了loss之間的對應關係 model model inputs src,tgt outputs y,flow 定義網路的時候會給出輸入和輸出 model.compile optimizer adam lr lr loss losses.cc3d losses.gradientloss l...