P1522 牛的旅行 flody

2021-09-23 20:49:59 字數 1267 閱讀 6289

初入手,苦思不得其解。後看題解,恍然大悟。

乙個牧場的直徑就是牧場中最遠的兩個牧區的距離

最小直徑 = 新道路左端點所能到達的最遠點 + 新道路長度 + 新道路右端點所能到達的最遠點

1.先來一套flody。

2.然後遍歷每個節點記錄每個點所能到達的最遠點的距離。

3.再遍歷求最小直徑。

4.又因為單個牧場直徑可能大於新牧場直徑,所以需要與兩個牧場的直徑作比較求較大值

對於第4條的證明:

如圖,新牧場最短直徑為a2->b1 = 5+10

但實際上牧場a的直徑為20,新牧場的最小直徑也應該在最後更新為20

0;k}//求每個點所能到達的最遠點的距離

for(

int i=

0;i}//求最小直徑

double ans=inf;

for(

int i=

0;i}//與牧場直徑做比較

for(

int i=

0;i)printf

("%.6lf"

,ans)

;return0;

}

p1522 牛的旅行 Cow Tours

傳送門 題目 農民 john的農場裡有很多牧區。有的路徑連線一些特定的牧區。一片所有連通的牧區稱為乙個牧場。但是就目前而言,你能看到至少有兩個牧區通過任何路徑都不連通。這樣,farmer john就有多個牧場了。輸入檔案包括牧區 它們各自的座標,還有乙個對稱鄰接矩陣。輸入檔案至少包括兩個不連通的牧區...

洛谷 P1522 牛的旅行 Cow Tours

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

洛谷P1522 牛的旅行 Cow Tours

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