日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 任意兩點最短路 Floyd-Warshall算法 傳遞閉包

任意兩點最短路 Floyd-Warshall算法 傳遞閉包

來源:程序員人生   發布時間:2015-03-16 11:07:36 閱讀次數:3597次

Floyd-Warshall算法是求解任意兩點最短路的有力武器。其也適用于存在負邊的情況。

DP思路,假定只使用前K個點時i到j的最短距離為d[k][i][j]
那末,使用前K+1個點就能夠分成兩種情況
①i到j的最短路用到了第K+1個點(d[k+1][i][j] = d[k][i][j])
②i到j的最短路沒有用到第K+1個點(d[k+1][i][j] = d[k][i][k]+d[k][k][j]);
所以,d[k+1][i][j] = min(d[k][i][j],d[k][i][k]+d[k][k][j])

使用轉動數組,就能夠寫成2維數組的情勢
d[i][j] = min(d[i][j],d[i][k]+d[k][j])

Floyd算法可以在O(V^3)的時間內解出,判斷圖中是不是有負圈,只需要檢查是不是存在d[i][i]是負數的頂點i就能夠了。

代碼

//d[i][j]表示i->j的權值,不存在時設為INF 但是d[i][i]設為0 for(int k = 0 ; k < V ; k ++) { for(int i = 0 ; i < V ; i ++) { for(int j = 0 ; j < V ; j ++) { d[i][j] = min(d[i][j],d[i][k]+d[k][j]); } } }

由于實現起來非常簡單,如果復雜度在可以承受的范圍以內,單源最短路也能夠使用Floyd-Warshall算法來進行求解。

在有向圖中,如果需要判斷每兩個點是不是存在路徑,那末也能夠用Floyd算法來進行傳遞閉包
只需要改成d[i][j] = d[i][j] || (d[i][k]&&d[k][j])便可(預處理也要變化)

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩在线免费 | 国产乱码一区二区三区 | 69视频免费在线观看 | 日韩啊v| 亚洲福利小视频 | 日本久久久久久久 | 国产精品成人一区二区三区夜夜夜 | 色免费在线视频 | 日韩欧美一区二区三区久久婷婷 | 毛片免费看网站 | 日本中文字幕在线视频 | 成人午夜免费视频 | 日韩av一区在线 | 国产日本一区二区 | 国产精品久久久久久久久搜平片 | 91视频在线网址 | 俺去俺来也www色官网cms | 国产欧美日韩在线视频 | 亚洲欧洲精品成人久久奇米网 | 一区二区三区精品 | 欧美激情综合五月色丁香小说 | 91精品国产综合久久精品图片 | 三级网站免费观看 | 日本色综合 | 黄色电影免费在线观看 | 一级电影a | 午夜综合 | 欧美极品少妇xxxxⅹ喷水 | 久久经典 | 57pao国产精品一区 | 亚洲www啪成人一区二区麻豆 | 天堂男人网| 久久熟 | 精品国产一区探花在线观看 | 99精品久久99久久久久 | 91啪影院| 99视频精品在线 | 亚洲免费在线观看视频 | 99re6热只有精品免费观看 | 99久久夜色精品国产亚洲96 | 图片区自拍偷拍 |