洛谷 P1522 牛的旅行 Cow Tours

2022-09-20 22:57:13 字數 1177 閱讀 2050

這道題意較難理解:john有多個農場,每個農場有多個農區,給出農區的位置以及農區之間是否有路線(就是鄰接表),求出用最好的方法連線後(可以理解為合併後的乙個農場),求出這個農場直徑(相距最遠的兩個農區的最短路)

我的做法是先將農場給劃分開來,因為連線後的的直徑有三種可能,先將第乙個農場記作x,另乙個記作y:

x的直徑;

y的直徑;

分別從連線點出發,x的最長路線加上y的最長路線再加上連線點的距離。

#includeusing

namespace

std;

int x[155],y[155

];double d[155][155], d[155][155

];int belong[155

];int p[155

];int q[155][155

];int

n;double f[155

];double kuai[155][155

];void dfs(int l,inth)}

double zhijing(int t,intk);

double ws[155

];

for(int i=1;i<=p[t];++i)

ws[i]=1e9;

ws[k]=0

;

double ans=0

;

for(int i=1;ii)

for(int i=1;i<=p[t];++i)

kuai[t][k]=ans;

return

ans;}//

最短路演算法

double liantong(int x,int y,int x1,int y1, double

dd)int

main()

}int k=0

;

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

if(!belong[i]) dfs(i,++k);//

dfs求出每個連通塊

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

double tr=1e9;

for(int i=1;i<=k;++i)}}

}printf(

"%.6f\n

",tr);

return0;

}

洛谷 P1522 牛的旅行 Cow Tours

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

洛谷P1522 牛的旅行 Cow Tours

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

洛谷 P1522 牛的旅行 Cow Tours

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