求最短通路值

2021-09-26 13:39:58 字數 885 閱讀 6056

用乙個整形矩陣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)無法到達(n, m)請輸出-1

示例1

4 5

10111

10101

11101

00001

12
示例2

4 5

11011

11111

11111

00001

8
1⩽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。輸...