最短路——Floyd

求每兩點之間的最短路。還有個有意思的用處,判斷每兩點之間是否有通路,初始值設爲0或者1,d[i][j] = d[i][j] || (d[i][k] & d[k][j]),有向圖的傳遞閉包。

for(int k = 0; k < n; ++k){
	for(int i = 0; i < n; ++i){
		for(int j = 0; j < n; ++j){
			if(d[i][k] != max_int && d[k][j] != max_int)
				d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
		}
	}
}


發佈了102 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章