洛谷P1522牛的旅行 floyd

2022-05-12 12:45:59 字數 959 閱讀 5124

題目:

懶於仔細分情況而直接像題解那樣寫floyd然後不明白最後一步max的含義了...

分開考慮怎麼保證在乙個內呢?如果新連邊的min與原直徑的max在三個連通塊裡怎麼辦?

**如下:

#include#include

#include

#include

using

namespace

std;

double

const inf=0x3f3f3f3f

;int n,xx[155],yy[155],col[155

],cr;

double dis[155][155],ans,mx[155],as,s[155

];double cal(int i,int

j)//

void dfs(int x)

//int

main()

//for(int i=1;i<=n;i++)

//if(!col[i])cr++,dfs(i);

for(int k=1;k<=n;k++)

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

if(dis[i][j]!=inf)

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

if(dis[i][j]==inf)ans=min(ans,mx[i]+mx[j]+cal(i,j));

printf(

"%.6lf

",max(ans,as

));

return0;

}

洛谷 P1522 牛的旅行 Cow Tours

題目描述 農民 john的農場裡有很多牧區。有的路徑連線一些特定的牧區。一片所有連通的牧區稱為乙個牧場。但是就目前而言,你能看到至少有兩個牧區通過任何路徑都不連通。這樣,farmer john就有多個牧場了。john想在牧場裡新增一條路徑 注意,恰好一條 對這條路徑有以下限制 乙個牧場的直徑就是牧場...

洛谷P1522 牛的旅行 Cow Tours

農民 john的農場裡有很多牧區。有的路徑連線一些特定的牧區。一片所有連通的牧區稱為乙個牧場。但是就目前而言,你能看到至少有兩個牧區通過任何路徑都不連通。這樣,farmer john就有多個牧場了。john想在牧場裡新增一條路徑 注意,恰好一條 對這條路徑有以下限制 乙個牧場的直徑就是牧場中最遠的兩...

洛谷 P1522 牛的旅行 Cow Tours

農民 john 的農場裡有很多牧區。有的路徑連線一些特定的牧區。一片所有連通的牧區稱為乙個牧場。但是就目前而言,你能看到至少有兩個牧區通過任何路徑都不連通。這樣,farmer john 就有多個牧場了。john 想在牧場裡新增一條路徑 注意,恰好一條 對這條路徑有以下限制 乙個牧場的直徑就是牧場中最...