Floyd演算法實現 hdu 1690

2021-10-02 02:52:13 字數 1645 閱讀 2759

floyd演算法實現–多源最短路徑o(n^3)

//int d[i][j]//i到j的最路徑 

//int path[i][j]//i到j的最短路徑上j的前乙個頂點序號

//初始化

for(

int i=

1;i<=n;i++

)else

path[i]

[j]=-1

;//無路 }}

//遞推

for(

int k=

1;k<=n;k++

)for

(int i=

1;i<=n;i++)}

}//如何得到i-j的一條最短路

k=path[i]

[j];..

. k=path[i]

[k];

#include

using

namespace std;

1000][

1000

],path[

1000][

1000];

int m,n,x,y;

const

int inf=

1e9;

intfloyd()

}}}}

intmain()

}int a,b,c;

for(

int i=

1;i<=m;i++

)for

(int i=

1;i<=m;i++

)else

path[i]

[j]=-1

;}}floyd()

;[y]

[y];

cout<"->"

;while

(k!=y)

cout

}...

hdu 1690

題目鏈結

#include

#include

#include

using

namespace std;

#define min(a,b) (a)>(b)?(b):(a)

#define inf 110000000000

typedef

long

long ll;

ll p[

110]

,map[

110]

[110];

void

floyd

(int n)}}

}int

main()

for(

int i=

1;i<=n;i++

)else

if(dis>l1&&dis<=l2)

else

if(dis>l2&&dis<=l3)

else

if(dis>l3&&dis<=l4)

else}}

floyd

(n);

printf

("case %d:\n"

,c++);

for(

int i=

0;i)else}}

return0;

}

floyd演算法MATLAB實現

floyd演算法,簡單的來說,就是算出n個點任意兩個點之間的最短距離,類似於三角形任意兩邊之和大於第三邊,畫了個圖,圖咋不好看,注意領會精神 然後就可以,算出從a到b的所有距離,留下最優的那一組 即最小的 儲存,同樣,a和c以及b和c之間的距離也可以輸出,最後就可以得到3x3的乙個矩陣 3個地點,主...

最短路HDU2544(floyd演算法)

題目鏈結 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10...

租賃問題 Floyd演算法實現

今天在書上看到乙個問題,在乙個江邊,設定了n個可以租賃船隻的站點,那麼如何才能讓遊客從出租站點1到站點n的費用最少呢?其實這個問題就是典型的floyd演算法的運用,比較簡單 站點 i 到站點 j 的最少花費,那麼就是尋找 i 到 j 的內部結點,使得 i 到 k,再 k 到 j 的花費小於直接 i ...