輸入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#includeint 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...