用乙個整形矩陣matrix表示乙個網格,1代表有路,0代表無路,每乙個位置只要不越界,都有上下左右四個方向,求從最左上角到右下角的最短通路值
例如,matrix為:
1 0 1 1 1
1 0 1 0 1
1 1 1 0 1
0 0 0 0 1
通路只有一條,由12個1構成,所以返回12
[要求]
時間複雜度為o(nm),空間複雜度為o(nm)
第一行兩個整數n,m表示矩形的長寬接下來n行,每行乙個長度為m的字串表示矩形
輸出乙個整數表示最小步數示例1若從(1, 1)無法到達(n, m)請輸出-1
4 510111
10101
11101
00001
12示例2
4 511011
11111
11111
00001
81⩽n,m⩽1000
保證matrix i,j=0/1,matrix 1,1=1,matrix n,m=1 (既保證數值有效,起始點和終止點有效)
//利用bfs求解最短路徑
#includeusing namespace std;
bool isvalid(const int& x,const int& y,const int& n,const int& m));
int d[4][2]=,,,};
while(!q.empty()));}}
}if(dist[n-1][m-1])else
return 0;
}
最短路 求最長最短路,求最短路的路徑
hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...
Dijkstra求最短路(最短模板)
給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示1號點到n號...
spfa求最短路
給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,邊權可能為負數。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出impossible。資料保證不存在負權迴路。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示點x和點y之間存在一條有向邊,邊長為z。輸...