日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

          歡迎訪問 生活随笔!

          生活随笔

          當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

          编程问答

          Floyd-Warshall算法

          發布時間:2025/3/21 编程问答 26 豆豆
          生活随笔 收集整理的這篇文章主要介紹了 Floyd-Warshall算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

          簡單路徑p={v1,v2,...,vl}上的中間頂點是除v1和vl以外p上得任何一個頂點。

          令dij(k)為從頂點i到頂點j、且滿足所有中間頂點皆屬于{1,2,...,k}的一條最短路徑的權值。當k=0時,從i到j根本不存在中間頂點。

          遞歸式為

          dij(k)=wij if k=0??? or???????? min(dij(k-1) , dik(k-1) + dkj(k-1))?? if k>=1

          ?

          ?

          ?

          floyd 1 int D[5][25];
          2
          3 void Floyd_Warshall(const Graph* g)
          4 {
          5 for(int i=0;i<25;++i)
          6 D[0][i]=g->W[i];
          7
          8 for(int k=1;k<=5;++k)
          9 {
          10 for(int i=1;i<=5;++i)
          11 {
          12 for(int j=1;j<=5;++j)
          13 {
          14 int a=D[k-1][5*(i-1)+j-1];
          15 int b=D[k-1][5*(i-1)+k-1]+D[k-1][5*(k-1)+j-1];
          16 if(a<b)
          17 D[k][5*(i-1)+j-1]=a;
          18 else
          19 D[k][5*(i-1)+j-1]=b;
          20 }
          21 }
          22 }
          23 for(int i=0;i<25;++i)
          24 {
          25 int u=i/5+1;
          26 int v=i%5+1;
          27 cout <<"The shortest distance from "<<u<<" to "<<v<<" is "<<D[5][i]<<endl;
          28 }
          29 }

          ?

          ?

          轉載于:https://www.cnblogs.com/daniagger/archive/2012/03/13/2394479.html

          總結

          以上是生活随笔為你收集整理的Floyd-Warshall算法的全部內容,希望文章能夠幫你解決所遇到的問題。

          如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。